OS笔记——chap2_part2

操作系统原理及安全

第二章 进程与线程

“原理 机制 算法”
参考:
参考链接

1 程序的执行顺序

  • 顺序执行:
    • 一个程序通常由若干个程序段所组成,它们必须按照某种先后次序来执行,仅当前一个操作执行完后才能执行后继操作,这类计算过程就是程序的顺序执行过程。
    • 顺序执行的特征:
      • 顺序性
      • 封闭性:程序一旦开始执行,其执行结果不受外界因素影响。
      • 可再现性:只要程序执行时的初始条件和执行环境相同,当程序重复执行时,都将获得相同的结果。
  • 并发执行:
    • 若干个程序(或程序段)同时在系统中运行。这些程序(或程序段)的执行在时间上时重叠的。一个程序(或程序段)的执行尚未结束,另一个程序(或程序段)的执行已经开始。

    • 并发执行的特征:

      • 间断性:并发程序具有”执行–暂停–执行“,间断地执行
      • 非封闭:多个程序共享系统中的资源,资源的状态将由多个程序来改变,致使程序之间相互影响。
      • 不可再现性:在初始条件相同的情况下,程序的执行结果依赖于执行的次序。
    • 程序并发执行的条件(Bernstein条件):

      1. R ( S j ) ∩ W ( S j ) = ∅ R(S_j) \cap W(S_j) = \emptyset R(Sj)W(Sj)=
      2. R ( S j ) ∩ W ( S i ) = ∅ R(S_j) \cap W(S_i) = \emptyset R(Sj)W(Si)=
      3. W ( S j ) ∩ W ( S i ) = ∅ W(S_j) \cap W(S_i) = \emptyset W(Sj)W(Si)=

      其中, S i S_i Si S j S_j Sj是两个程序段, R ( S i ) R(S_i) R(Si)为语句执行期间要引用的变量集合, W ( S i ) W(S_i) W(Si)为语句执行期间要改变的变量集合。


2 进程的引入

进程的定义
  • 进程是程序在处理器上的一次执行过程。
  • 进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。
  • 进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。

进程的特征
  • 动态性:进程是程序的一次执行过程。进程是有“生命”的,动态性还表现为它因创建而产生,因调度而执行,因无资源而暂停,因撤消而消亡。而程序是静态实体
  • 并发性:多个进程实体同时存在于内存中,能在一段时间内同时运行。
  • 独立性:在传统OS中,进程是独立运行的基本单位,也是系统分配资源和调度的基本单位。凡是未建立进程的程序,很难作为独立单位参与调度和运行
  • 异步性:进程以各自独立的不可预知的速度向前推进。
  • 结构性:进程实体由程序段、数据段及进程控制块组成,又称为进程映像
  • 共享性:同一程序同时运行于不同的数据集合上时,将构成不同的进程。进程之间也可以共享公用变量,通过公用变量交换信号。

进程的描述
  • 进程映像(某时刻进程内容及其状态的集合)
  • 进程映像 = 控制块 + 程序块 + 核心栈 + 数据块
  • 一个进程的存储映像 = 系统级上下文 + 用户级上下文;
    • 系统级上下文(内核空间信息)= 进程控制块 + 主存管理信息 + 核心栈…
    • 用户级上下文(用户空间信息)= 用户堆栈 + 用户数据块 + 用户程序块 + 共享地址空间+…
    • 寄存器上下文/硬件上下文(现场信息)=处理器中各寄存器的内容
  • 进程控制块(PCB):
    • PCB是描述和管理进程的数据结构。它是进程实体的一部分,是进程存在的唯一标志
    • 操作系统创建、修改、查询、回收PCB
    • PCB的组成:
      1.进程标识信息
      2.进程现场信息:保留进程在运行时存放在处理器中的各种信息。
      3.进程控制信息

进程的状态与转换
  • 进程模型:
    1.三状态模型
    三态模型

    2.五状态模型
    五态模型

    3.七状态模型
    七态模型

  • 状态含义
    1.就绪状态(ready):进程已获得除处理器以外的所有资源,一旦分配了处理机就可以立即执行。

    2.运行状态(running):一个进程获得必要的资源并正在处理机上执行。

    3.阻塞状态(block):又称等待状态(wait)、睡眠状态(sleep)。正在执行的进程,由于发生某事件而暂时无法执行下去(如:等待输入/输出完成)。这时即使把处理器分配给该进程,它也无法运行。

    4.新建状态:进程刚刚建立,但还未进入就绪队列。又称创建状态。

    5.终止状态:当一个进程正常或异常结束,操作系统已释放它所占用的资源,但尚未将它撤消时的状态,又称退出状态。

    6.挂起状态:由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须将某些进程切换到静止状态,因此需要把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到减少系统操作负荷的作用。


进程的控制管理与组织
  • 进程的管理:进程的创建、终止、阻塞与唤醒等。这依靠操作系统原语来实现。

    • 原语:是由若干条机器指令构成的,完成特定功能的一段程序,这段程序在执行期间不可分割。
  • 进程的组织:系统中有许多进程,为了能对它们进行有效的管理,应将PCB组织起来。

    • 常用的组织方式有:线性方式、链表方式、索引方式。
      1. 线性方式:将PCB顺序存放在一片连续内存中。
        线性组织

      2. 链表方式:将同一状态的PCB组成一个链表。
        链式组织

      3. 索引方式将同一状态的进程归入一个索引表,再由索引指向相应的PCB。
        索引组织


进程切换与CPU模式切换
  • 进程切换:中断处于运行态的进程的运行,让出处理器。完成一次进程上下文切换,即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行。
    进程切换

  • CPU模式切换:当中断/系统调用发生时,暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去执行操作系统服务程序以获得服务,这就是一次模式切换。此时,内核仍在被中断的进程的上下文中进行处理。

  • CPU上所执行的进程所处活动范围:

    • 用户空间中,处于进程上下文,用户进程在运行,使用用户栈。
      • 进程正常运行
    • 内核空间中,处于进程上下文,内核代表某进程在运行,使用核心栈。
      • 进程请求系统调用,陷入内核
    • 内核空间中,处于中断上下文,与任何进程无关,中断服务程序正在处理特定中断。
      • 进程被中断

进程间通信(InterProcess Communication, IPC)
  • 指进程之间的信息交换,是进程之间的一种协作机制

  • 进程协作的原因:信息共享;提高运算速度;系统模块化要求;方便。

  • 两种基本模型:
    IPCmodel

    • 消息传递模型:

      例1 信号机制
      linux信号处理

      例2 消息传递机制(直接传递)

      • 直接传递

      消息的直接传递

      • 间接传递:mailbox、port

      2.共享内存模型:
      共享内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值