ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 进程

进程

原创 Linux操作系统 作者:heidou_love 时间:2012-11-14 16:22:56 0 删除 编辑
1. 专用服务器进程
有多种fork()和exec()调用,如vfork()、execve()等。Oracle 所用的调用可能根据操作系统和实现的不同而有所不同,但是最后的结果是一样的。fork()创建一个新进程,这是父进程的一个克隆,而且在UNIX 上这也是创建新进程的惟一途径。exec()在内存中现有的程序映像上加载一个新的程序映像,这就启动了一个新程序。所以SQL*Plus 可以先“fork”( 即复制自身),然后“exec”Oracle 二进制可执行程序,用这个新程序覆盖它自己的副本。
 select a.spid dedicated_server,
 b.process clientpid
 from v$process a, v$session b
 where a.addr = b.paddr
 and b.sid = (select sid from v$mystat where rownum=1)
-------------------------------------
  6413  3928:820
[oracle@localhost ~]$ ps -p 6413 3928
  PID TTY      STAT   TIME COMMAND
 6413 ?        Ss     0:00 oracleorcloa (LOCAL=NO)
ops$tkyte@ORA10G> !/bin/ps -p 5114 5112
PID TTY STAT TIME COMMAND
5112 pts/1 R 0:00 sqlplus
5114 ? S 0:00 oracleora10g
(DESCRIPTION=(LOCAL=YES)..(PROTOCOL=beq)))
在此,我使用了一个查询来发现与专用服务器相关联的进程ID(PID),从V$PROCESS 得到的SPID 是执行该查询时所用进程的操作系统PID。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28344546/viewspace-749218/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-11-05

  • 博文量
    7
  • 访问量
    9322