nber1994



os-进程

August 9, 2019

os-进程

进程和线程之间的区别:

进程之间的关系

进程经典定义

一个执行中程序的实例

进程上下文

进程提供的假象

一个独立的逻辑控制流,好像是独占cpu 一个独立的地址空间,好像是独占主存

并发流

多任务也叫时间分片。每个进程执行它部分逻辑流的一段时间叫做时间分片

私有地址空间

一个进程常见的内存情况

一个进程的常见内存情况

用户模式和内核模式

调度

调度的原因

一个因为读取磁盘的调度实例

  1. 初始时,进程A运行在用户模式,进程调用read命令时,进程A会从用户态切换到内核态,同时内核会把A的内核态切换到B的内核态进程,然后再运行在B的用户态执行
  2. 同时陷阱处理程序会通过DMA,不经过cpu,直接将数据从磁盘读取到内存中,读取完毕后,磁盘控制器会向cpu发送一个中断信息
  3. 当内核觉得进程B已经执行了足够长的时间时,内核通过切换上下文,将控制权移交给A进程,同时从read的之后的指令开始执行

进程的三种状态

  1. 运行 正在cpu执行,或者在等待被执行且最终会被执行
  2. 停止 进程执行被挂起,且不会被调度。
  3. 终止 进程永远的停止了 三种终止原因:1.收到一个信号 2.从主程序返回 3.exit函数退出

创建子进程

回收子进程

信号

待处理信号

发送信号

Unix提供了大量向进程发送信号的机制,这些机制是基于进程组的

进程组

每个进程都属于一个进程组,默认的子进程的进程组PGID是父进程的PID

信号的收发

接收信号