`

Chapter 9__进程关系

    博客分类:
  • APUE
 
阅读更多

----------------------------------------------------------------------------------
ls /dev
tty :虚拟终端,我们可以打开多个终端窗口~
ttys:串口,早期使用“哑终端”登录,应该是类似使用串口设备那样。
哑终端:早期UNIX系统,使用硬连接 连到主机,进行登录
关于终端的文章:
http://blog.csdn.net/force_eagle/archive/2009/07/18/4358942.aspx
----------------------------------------------------------------------------------

×进程间,有着一个族谱,但并非像人类需要X+Y诞生下一代。

----------------------------------------------------------------------------------
《进程组》

一个或多个 “进程” 的集合。获取进程的组ID:
       pid_t getpgrp(void);
       pid_t getpgrp(pid_t pid); //参数为0等同于上一个

组长进程,其组ID为自己的进程ID。
组长进程死亡后,其组下仍可生存其它进程,进程组与组长进程生命周期不同。

       int setpgrp(void);                  /* System V version */
       int setpgrp(pid_t pid, pid_t pgid); /* BSD version */

将指定进程pid,设为某组进程pgid一员。
进程只能为自己,或子进程设置进程组ID。
子进程调用exec函数族之一后,不能父进程不能再改变其进程组ID。

父进程为子进程设组ID,子进程自己也设置组ID。
由于父子进程的运行次序的不确定性:
如果父进程先运行,子进程未运行过,那么子进程的组ID为?不确定其身份。


消息可以发给一个进程,或一个进程组的所有进程。

----------------------------------------------------------------------------------
《会话》

会话,又是一个或多个 “进程组” 的集合,会话ID是其下的一个进程组长ID。

       pid_t setsid(void);
       pid_t getsid(pid_t pid);

如果调用setsid()的进程:
情况A:是一个进程组的组长,此函数返回出错。
       故一般先调用fork,将父进程exit掉。
子进程虽然继承了进程组ID,但pid != gid,肯定不是组长。

情况B:
不是则会创建一个新会话:
1、该进程变为新进程组的组长进程
2、该进程变为新会话的首进程(session leader)
3、该进程没有控制终端。
   如果调用setsid()前该进程有控制终端,那么这种联系也会被中断。

----------------------------------------------------------------------------------

《控制终端》
1、一个会话,可以有一个控制终端
2、建立与控制终端连接的会话首进程,被称为控制进程
3、一个会话中的几个进程组,会分为一个前台进程组,和若干后台进程组。
4、无论何时键入中断键(Ctrl+C),会将中断信号发送给前台进程组的所有进程。
5、无论何时键入退出键(Ctrl+\),会将中断信号发送给所有进程组的所有进程。
6、终端接口检测到调制解调器或网络断开,则将挂断信号发送给控制进程,即会话首进程。


----------------------------------------------------------------------------------
《作业控制》
----------------------------------------------------------------------------------

《shell执行程序》
xserver@vbox-pc:~$ ps -o pid,ppid,pgid,sid,comm,tpgid |cat
  PID  PPID  PGID   SID COMMAND         TPGID
2008  1572  2008  2008 bash             2596
2596  2008  2596  2008 ps               2596
2597  2008  2596  2008 cat              2596


xserver@vbox-pc:~$ ps 1572
  PID TTY      STAT   TIME COMMAND
1572 ?        Sl     0:20 gnome-terminal

----------------------------------------------------------------------------------
《孤儿进程组》orpgan process

----------------------------------------------------------------------------------
终端登录:点对点连接
网络登录:非点对点
伪终端,以处理上面两种登录方式。
仿真串行终端的运行行为,并将终端操作映射为网络操作。
字符终端、图形终端
终端的波特率,终端速度

分享到:
评论

相关推荐

    Chapter进程通信(共86张PPT).pptx

    无名管道仅限于有亲缘关系的进程(如父子进程)之间使用,而命名管道则可以通过文件系统路径在任意进程间共享。消息队列允许进程间有序地发送和接收结构化数据。信号灯是一种同步工具,用于控制对共享资源的访问。...

    chapter9.rar

    《哈尔滨师范大学计算机科学与技术专业相关用书代码》这一压缩包文件,名为"chapter9.rar",显然包含的是计算机科学与技术领域的学习资料,特别是与编程代码相关的部分。在这个章节中,我们可以预见到一系列关于编程...

    Chapter进程同步与互斥应用例子解析实用PPT学习教案.pptx

    例如,过独木桥的例子中,进程P1和P2之间存在互斥关系,因为它们都想过独木桥,但独木桥只能让一个进程通过。解决这个问题的方法是使用信号量m,初值为1,表示资源可用。然后,在进程中使用P(wait)和V(signal)操作来...

    《UNIX环境高级编程》随书代码与课后习题

    Chapter 9: 进程关系 Chapter 10: 信号 Chapter 11: 线程 Chapter 12: 线程控制 Chapter 13: 守护进程 Chapter 14: 高级 I/O Chapter 15: 进程间通信 Chapter 16: 网络 IPC: 套接字 Chapter 17: 高 【资源声明】:...

    进程错误处理机制

    在"chapter6"这个文件中,可能包含了关于进程错误处理机制的更深入讲解,比如第六章可能详细讨论了错误处理的实现细节、特定类型的错误和它们的处理方法,或者是介绍了使用特定工具进行故障排查的步骤。为了获取更...

    Operating System(Chapter 1)

    综上所述,《Operating System(Chapter 1)》这一章节为我们提供了对操作系统的初步理解,介绍了其基本概念、功能及其在计算机系统中的重要作用。通过学习这些基础知识,初学者可以更好地理解操作系统如何帮助用户...

    【英文原版】操作系统_精髓与设计原理_第6版 - Chapter04-new.pptx

    - **线程与进程的关系**: - 调度单位:线程被视为调度单位或轻量级进程。 - 资源单位:进程被视为资源所有权单位或任务。 - **多线程能力**:操作系统支持在同一进程中多个并发执行路径的能力。 - 单线程方法:...

    操作系统概念课件:Chapter 5 CPU Scheduling.pdf

    线程是进程内的执行单元,线程调度可能与进程调度略有不同,因为它要考虑线程之间的关系和上下文切换的开销。 ### 算法评估 评估调度算法通常涉及模拟和实验,以比较不同准则下的性能。 ### 分发器(Dispatcher) ...

    操作系统chapter52022优秀文档.ppt

    操作系统是计算机科学中的核心组成部分,其中进程的概念是操作系统设计与管理的基础。进程是操作系统中运行程序的抽象,代表了一个程序的实例在内存中的状态。在多道程序系统中,进程的引入是为了更好地理解和描述...

    chapter01.zip

    4. **数据库管理**:对于初学者,可能介绍关系型数据库的基本知识,如SQL语言,表的设计,以及查询操作。可能通过使用MySQL或SQLite等数据库管理系统进行实例演示。 5. **操作系统原理**:可能讲解操作系统的基本...

    Chapter3.rar.rar

    8. **操作系统原理**:如果是计算机科学课程,可能涉及到进程、线程、内存管理、I/O操作等内容。 9. **网络编程**:TCP/IP协议栈,套接字编程,或者是HTTP协议的详解。 10. **数据可视化**:如果涉及数据分析,...

    Oracle Concepts 中英文对照版 (10g R2).rar

    第 9 章,进程体系结构 Chapter 10, Application Architecture 第 10 章,应用体系结构 Chapter 11, Oracle Utilities 第 11 章,Oracle 工具 Chapter 12, Database and Instance Startup and Shutdown 第 12 ...

    现代操作系统课件:Chapter3-Paging.ppt

    Chapter 3 - Paging.ppt探讨了这一主题,特别是虚拟内存如何通过分页机制来解决内存管理和程序执行的问题。 虚拟内存的主要目标是将用户的逻辑地址空间与实际的物理内存地址空间隔离开,允许程序在不完全加载到内存...

    Oracle 10g Concepts 中文版

    Chapter 9, Process Architecture 第 9 章,进程体系结构 Chapter 10, Application Architecture 第 10 章,应用体系结构 Chapter 11, Oracle Utilities 第 11 章,Oracle 工具 Chapter 12, Database and ...

    Oracle 10g r2 Concepts 手册(中英文对照阅读版本).chm

    Chapter 9, Process Architecture 第 9 章,进程体系结构 Chapter 10, Application Architecture 第 10 章,应用体系结构 Chapter 11, Oracle Utilities 第 11 章,Oracle 工具 Chapter 12, Database and ...

    Oracle Concepts中英文对照版(10g R2).chm

    Chapter 9, Process Architecture 第 9 章,进程体系结构 Chapter 10, Application Architecture 第 10 章,应用体系结构 Chapter 11, Oracle Utilities 第 11 章,Oracle 工具 Chapter 12, ...

    QNX_Adaptive_Partitioning_User_Guide_.pdf

    在“Chapter2:UsingtheThreadScheduler”中,用户指南可能提供关于如何使用线程调度器的具体指导,包括如何追踪CPU使用情况、如何在分区之间分配CPU时间、如何处理分区的继承关系,以及如何处理关键线程和系统资源...

    操作系统概念英文课件:Chapter 8 Memory Management (2).ppt

    在Chapter 8 "Memory Management (2)"的课件中,主要讨论了页式内存管理和相关的硬件机制,包括页表、快表(TLB)以及内存保护。 首先,页式内存管理是一种将进程的虚拟地址空间分割成固定大小的块,称为页面,然后...

    chapter17 习题1

    这是因为单处理器机器上的数据库设计通常已经具备多任务处理能力,允许多个进程在同一处理器上时间共享地运行,从而给用户呈现出多个进程并行运行的假象。因此,对于粗粒度并行的多处理器机器,其逻辑表现与单处理器...

    Chapter6商务谈判英语.doc

    在"Chapter6 Business Negotiation"中,我们看到两位参与者在一场可能的商业合作谈判中展开对话。首先,他们讨论了如何开始谈判,提出应从识别和解决可能的问题入手。这表明在商务谈判中,明确并解决障碍是首要任务...

Global site tag (gtag.js) - Google Analytics