每日编程27之linux系统调用——进程管理

进程ID的唯一性,多数UNIX系统采用的延迟重用(防止新进程的ID被认为是已经被删除进程的ID)策略。。。

系统中存在一些专用进程:

(1)ID为0的进程通常是调度进程(交换进程)swap,它不执行任何磁盘程序,因此被称为系统进程

(2)ID为1的进程为init进程,在系统启动结束时由内核调用,程序文件为/etc/init 或/sbin/init...

该进程负责启动一个unix系统,通常会读取与系统有关的一些初始化文件如/etc/rc*,/etc/inittab,/etc/init.d以将系统引导至一个状态(例如多用户)

(3)每个系统还有自己的一些提供操作系统服务的内核进程,如用于提供虚拟存储器服务的分页服务的页守护进程(pagedaemon)


进程标识符

getpid/getppid

getuid/geteuid

getgid/getegid

六个获取进程相关标识符的函数


fork系统调用,子进程是父进程的副本

(1)子进程复制父进程的数据空间,堆和栈,保留一份自己的副本(由于fork后通常会执行exec,所以实际上采用了写时复制机制(copy on write)COW,上述区域由父子进程共享,内核将其访问权限改为只读,当父子进程任一方试图修改,则引起复制操作,通常是虚拟存储器系统中的一页拷贝。)

(2)共享正文段/代码段



关于文件共享,fork的一个特性是子进程获得父进程的打开进程描述符表,也即引用同样的一些文件指针,对这些文件的操作将以交互的形式实现。。

除了打开文件之外,子进程继承了父进程的其它特性,包括

(1)各种用户ID,组ID,其它ID/相关标志

(2)控制终端(这其实就是打开文件描述符表的几个特定项)

(3)当前工作目录,根目录

(4)文件创建模式屏蔽字,信号相关等

(5)环境

(6)连接的共享存储端。。。。这是什么?

(7)存储映射,资源限制


主要区别(都是些高级特性)有,(1)文件锁未被继承,(2)未处理信号集置空,(3)未处理闹钟清除,时间相关的东西置0...


OVER!!!

下一节研究,wait系列系统调用,竞争条件,和exec系统调用。。。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值