1.会话
PL/SQL
Developer工具登录ORACLEPL/SQL Developer工具——>首选项——>连接下,你可以设置会话方式,如下图所示:
如果设置选项选择多路会话,:PL/SQL Developer
登录ORACLE,每打开一个窗口,将创建一个新的会话,而设置选项选择单路会话,则新打开的窗口会共用一个会话。具体你可以参考PLSQL
Developer8.0用户指南:
多路会话:每个测试窗口、SQL窗口和命令窗口都将有它自己的会话,另外的一个会话将被用于编译。这是最灵活的设置,明显地会导致最大数量的数据库会话。另外可能的缺点是,在更新被提交之后,它们只在X窗口中可以看到,而在Y窗口看不到。
双路会话:测试窗口、SQL窗口和命令窗口将共享一个会话,另外一个会话将被用于编译。这个模式的缺点是每次只有一个窗口可以运行程序。
单路会话:所有的窗口和所有的编译都使用同一个会话,这使事务管理变得很困难。在这个模式中调试器被禁用使用。如果你被限制只能使用一个数据库会话,那么你只能使用这个设置了。
2.进程
共享服务器模式,一个会话可能由多个服务进程轮流为之服务,一个进程可能为多个会话服务。简单地说,进程和会话之间有一种多对多的关系。
3.作业
每个作业是都可以是一个或者多个进程。
4.前台、后台进程组
在任意时刻,可能同时存在多个后台进程组,但是不管什么时候都只能有一个前台进程组。
前台进程组—-需要与终端进行交互的进程组(只能有一个)。只有在前台进程组中进程才能在控制终端读取输入。当用户在终端输入信号生成终端字符(如ctrl+c、ctrl+z、ctr+\等)时,对应的信号只会发送给前台进程组。
5.为什么要有进程组?
那linux为什么要有进程组呢?其实提供进程组就是方便管理这些进程。假设要完成一个任务,需要同时并发100个进程,当用户由于
某种原因要终止这个任务时,要是没有进程组,就需要一个个去杀死这些进程,设置了进程组之后,就可以对进程组中的每个进程进行杀死。
6.为什么要有进程?
实现程序的并发执行
7.
如果调用次函数的进程不是进程组的组长,则会创建一个新会话,结果将发生下面3件事情:
(1)该进程会变为新会话的首进程。
(2)该进程会成为一个新进程组的组长进程
(3)该进程没有控制终端。
8. 程序、进程
程序只是静态的数据和指令的集合,进程是一个程序的动态执行过程,具有生命周期,是动态产生和消亡的。
9.
一般一个登录shell就是一个会话首进程,会话首进程获得一个控制终端给前台进程组用,会话首进程也只能通过控制终端来控制别的进程,所谓的控制就是发送信号(如ctl+c等)
10.
shell分前后台控制的不是进程而是作业(JOB)或者进程组,一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成,一个shell可以同时运行一个前台作业和多个后台作业,这称为作业控制
11.
所以会话包括:
控制进程(会话首进程)
一个前台进程组
任意多个后台进程组
12.
作业控制它允许在一个终端上同时启动多个作业(进程组)
13.守护进程:没有终端的限制,不受用户终端或其他的变化而受到影响。
14.进程分类:
交互进程:有一个Shell启动的进程,可在前台运行,也可在后台运行。
批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行的进程。
守护进程:在Linux启动时初始化,需要时运行于后台的进程。
13.
进程 0 是系统引导时创建的一个特殊进程,也称之为内核初始化,其最后一个动作就是调用 fork()
创建出一个子进程运行 /sbin/init 可执行文件,而该进程就是 PID=1 的进程 1,而进程 0
就转为交换进程(也被称为空闲进程),进程 1 (init 进程)是第一个用户态的进程,再由它不断调用 fork()
来创建系统里其他的进程,所以它是所有进程的父进程或者祖先进程。同时它是一个守护程序,直到计算机关机才会停止。
参考网址:https://www.cnblogs.com/kerrycode/p/4100865.html
http://blog.csdn.net/yh1548503342/article/details/41891047
http://blog.csdn.net/database_system/article/details/8793442
http://blog.csdn.net/baidu_24256693/article/details/43420363
http://blog.csdn.net/LLZK_/article/details/57949103