【第二章 | 进程的描述与控制】《操作系统 慕课版》课后答案 + 复习

目录

| 本章概念

1.从前趋图开始谈起

2.什么是进程?

3.进程控制块 PCB

4.进程控制

5.进程通信

6.线程(了解)

| 本章算法

求 N 个进程下各种状态的最值问题

| 课后简答题


| 本章概念

1.从前趋图开始谈起

  • 程序在执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完后,才能执行后继操作。

  • 前趋图:有向无循环图,用于描述进程之间执行的先后顺序。结点表示进程或程序段,有向边表示前趋关系

  • 程序并发执行的特性:间接性(并发程序之间相互制约。执行——暂停执行——执行)、失去封闭性(多个程序共享全机资源、执行状态受外界因素影响)、不可再现性

  • 相反的,程序顺序执行的特性:顺序性、封闭性、可再现性


2.什么是进程?

  • 进程的特点:

    进程是计算机程序运行时的抽象(静态部分:程序运行需要的代码和数据;动态部分:程序运行期间的状态(程序计数器、堆、栈……))

    进程具有独立的虚拟地址空间(每个进程都具有“独占全部内存”的假象;内核中同样包含内核栈和内核代码、数据)

  • 进程的定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个 独立单位。

  • 进程控制块(process control block, PCB) :专门的数据结构,与进程一一对应。

  • 进程的特征:

    动态性(最基本的特征):进程由创建而产生, 由调度而执行,由 撤销而消亡

    并发性:一段时间内同 时运行

    独立性:进程实体是一个能独立运行的基本单位;是系统中独立获得资源 和独立调度的基本单位

    异步性:按各自独立的、 不可预知的速度 向前推进

  • 进程 VS 程序:进程是程序的一个实例、一次执行、是活动的、在内存中的; 程序是静态的、在外存中的、是进程的代码部分

  • 进程的状态及转换:创建、阻塞、就绪、运行、终止、挂起、激活

    A.阻塞、就绪、运行在此不再赘述。

    B.创建:申请一个空白PCB;填写PCB;分配资源;设置就绪状态插入就绪队列

    C.终止:等待OS善后,收回PCB

    D.挂起:引入挂起操作的原因,是基于系统和用户的如下需要: (1) 终端用户的需要。 (2) 父进程请求。 (3) 负荷调节的需要。 (4) 操作系统的需要

    E.激活:(1) 活动就绪→静止就绪。 (2) 活动阻塞→静止阻塞。 (3) 静止就绪→活动就绪。 (4) 静止阻塞→活动阻塞。

 

 

3.进程控制块 PCB

  • PCB是进程的一部分,存放进程相关的各种信息,是操作系统中最重要的 记录型数据结构,是进程存在的唯一标志,常驻内存

  • PCB的作用:作为独立运行基本单位的标志;实现间断性运行方式; 提供进程管理需要的信息; 提供进程调度需要的信息; 实现与其他进程的同步与通信。

  • PCB包含的信息:进程标识符 、处理机状态、进程调度信息、进程控制信

    进程标识符:唯一地标识一个进程。一个进程通常有两种标识符: (1) 外部标识符。 (2) 内部标识符。

    处理机状态信息:也称为处理机的上下文, 主要是由处理机的各种寄存器中的内容组成的。

    调度信息:在OS进行调度时,必须了解进程的状态及有关进程调度的信息,这些信息包括:① 进程状态、② 进程优先级、③调度所需的其它信息、④ 事件

    进程控制信息:① 程序和数据的地址、② 进程同步和通信机制如消息队列指针、信号量、③ 所需资源清单、④ 链接指针:给出队列中下一个PCB的地址

  • PCB的组织方式:

 

4.进程控制

  • 一般由OS内核中的原语实现,包括:进程创建、进程终止、进程阻塞与唤醒、进程挂起与激活

  • fork( ):为调用进程创建一个一模一样的新进程。

    ① 调用进程为父进程,新进程为子进程。fork后的两个进程均为独立进程

    ② 接口简单,无需任何参数。

  • 进程的创建、终止

  • 进程的挂起、激活:进程的挂起: Suspend()原语 ; 进程的激活过程:Active()原语


5.进程通信

  • 独立进程存在的问题

    ①相同的功能却要在每个进程中独自写一遍:大量重复实现

    ②不同的进程侧重点不同,因此相同的功能在不同的进程间可能效率不同,无法做到优势互补:低效实现

    ③即使A进程获得了计算结果,B进程由于和A完全独立,所以还是需要自己再算一遍:没有信息共享

  • 为了解决上述问题,我们提出了进程协作:

    ①模块化: 数据库单独在一个进程中,可以被复用

    ②加速计算: 不同进程专注于特定的计算任务,性能更好

    ③信息共享: 直接共享已经计算好的数据,避免重复计算

  • 进程的协作依赖于进程间通信,通信的内容一般叫做“消息”

    进程间通信: 两个(或多个)不同的进程,通过内核或其他共 享资源进行通信,来传递控制信息或数据

  • 低级进程通信 :进程的同步和互斥(效率低 一次只能存一个/放一个、通信对用户不透明)

    高级进程通信:(使用方便 OS隐藏了实现进程通信的具体细节 、高效地传送大量数据 用户可直接利用高级通信命令(原语)高效地传送大量的数据。)

    举例:JAVA语言的Synchronized多线程锁

  • 进程通信的类型:

    • 共享存储器系统(基于共享数据结构的通信方式(效率低)、基于共享存储区的通信方式(高级))

    • 管道通信(用于连接一个读进程和一个写进程以实现它们之间通信的 一个共享文件,又名pipe文件),拥有互斥、同步、确定对方存在才通信的能力

      管道的特点:单向通信,当缓冲区满时阻塞;一个管道有且只能有两个端口: 一个输入,一个输出;数据不带类型,即字节流

    • Unix 管道(管道是Unix等宏内核系统中非常重要的进程间通信机制、是两个进程间的一根通信通道) 示例:常见命令 ls | grep

    • 消息传递系统(直接通信方式、间接通信方式(通过邮箱))

    • 客户机-服务器系统(计算机间的进程通信)(套接字(Socket)、远程过程调用(RPC)和远程方法调用(RMI,Java))

  • 消息传递通信的实现方式

    • 直接通信方式 发送原语:send(receiver, message) 、接收原语:receive(sender, message)

      进程的同步方式 在进程之间进行通信时,同样 需要有进程同步机制,以使诸进程 间能协调通信。最常用的是:发送进程不阻塞,接 收进程阻塞。

    • 间接通信方式:通过信箱来完成

      发送原语:send(mailbox, message) 、接收原语:receive(mailbox, message)

      分类:私用邮箱,公共邮箱,共享邮箱

 

6.线程(了解)

  • 线程的不足:创建进程的开销较大、隔离性过强、内部无法支持并行

  • 进程是拥有资源的基本单位(传统进程称为重型进程)

    线程作为调度和分派的基本单位(又称为轻型进程)

  • 线程只包含运行时的状态(静态部分由进程提供、包括了执行所需的最小状态)

    一个进程可以包含多个线程(每个线程共享同一地址空间、允许进程内并行)

  • 进程 VS 线程

    基本单位:在引入线程的OS中,线程作为调度和分派的基本单位,进程作为资源拥有的 基本单位

    切换:同一进程线程的切换不会引起进程切换;但一个进程中的线程切换到另一个进程中的线程将会引起进程切换

    并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的 多个线程之间,也可并发执行。

    拥有资源:进程:是系统中拥有资源的一个基本单位,它可以拥有资源,许多个线程共享其隶属进程所拥有的资源。

    线程:本身不拥有系统资源,仅有一点保证独立运行的资源;

    独立性:同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。

    系统开销:线程切换的代价远低于进程切换的代价;同一进程中的多个线程之间的同步和通信也比进程的简单

    支持性:线程支持多处理机系统

  • 线程的状态:执行态、就绪态、阻塞态。转换过程和进程的一样

  • 线程控制块(TCB)

  • 线程的实现

    • 实现方式:内核支持线程KST、用户级线程ULT

    • 具体实现:内核支持线程的实现(利用系统调用)、用户级线程的实现(借助中间系统)

      内核空间实现:内核本身可采用多线程技术,提高执行速度和效率、线程的切换比较快,开销小。但是对用户线程切换,开销较大

      用户空间实现:调度算法可以是进程专用的、线程的实现与OS平台无关、不需要切换到内核空间。但是不能利用多处理机进行多重处理的优点


| 本章算法

求 N 个进程下各种状态的最值问题

Q:在一个单CPU的多道程序设计系统中,若在某一时刻有N个进程 同时存在,那么处于运行态、阻塞态和就绪态进程个数的最小值 和最大值分别可能是多少?

A:只要有一个就绪态,CPU就不会空闲,就会有运行态进程,因 此,就绪态最大值为N-1。可能会存在所有进程均阻塞的情况。


| 课后简答题

 

 

  • 62
    点赞
  • 165
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Graskli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值