目录

| 本章概念

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。可能会存在所有进程均阻塞的情况。


| 课后简答题

 

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

  1. 模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制

    操作系统第二章--进程的描述与控制 前趋图和程序执行 前趋图 前趋图是一个有向无循环图DAG,用来描述进程之间执行的前后关系 初始结点:没有前趋的结点 终止结点:没有后继的结点 重量:表示该结点所含有 ...

  2. 【操作系统】 第二章 进程的描述与控制

    第二章 进程的描述与控制 2.1 什么是进程 程序代码+相关数据+程序控制块PCB 当处理器开始执行一个程序的代码时,称这个执行的实体为进程 2.1.1 进程和进程控制块PCB PCB(Process ...

  3. 【操作系统】第二章--进程的描述与控制--笔记与理解(2)

    笔记理解之后可以进行深入解释→[操作系统]第二章–进程的描述与控制–深入与解释(2) 文章目录 第二章--进程的描述与控制--笔记与理解(2) 经典进程的同步问题 生产者-消费者问题 读者-写者问题 ...

  4. 操作系统 第二章 进程的描述与控制(4)进程同步(重点)

    计算机操作系统 读书笔记 第二章 进程的描述与控制 进程同步(重点) 计算机操作系统 前言 进程同步 一.进程同步的基本概念 1.1 两种形式的制约关系 1.2 临界资源(Critical Resou ...

  5. 操作系统第二章进程的描述与控制

    第二章进程的描述与控制 前驱图和程序执行 程序并发执行 程序的并发执行 程序并发执行时的特征 间断性 失去封闭性 不可再现性 进程的描述 进程的定义 进程是程序的一次执行 进程是一个程序及其数据在处理 ...

  6. 【操作系统】第二章-进程的描述与控制

    第二章.进程的描述与控制 前言 在传统的操作系统中,为了提高资源利用率和系统吞吐量,通常采用多道程序技术,将多个程序同时装入内存,并使之并发运行,传统意义上的程序不再能独立运行.此时,作为资源分配和独 ...

  7. 考研OR工作----计算机操作系统简答题及疑难知识点总结(第二章 进程的描述与控制)

    计算机操作系统从第二章开始内容会变得异常多,还是希望能够帮助到大家,在这一章阿婆主还会把书上的典型的PV操作题给打上来,给大家用作参考,如果有问题的地方,还请大家在文章下方留言,我好更正,或者你们有更 ...

  8. 操作系统第二章-进程的描述与控制

    前趋图和程序执行 1.前趋图 所谓前趋图(PG),是指一个有向无环图,可记为DAG,用于描述进程之间执行的先后顺序,具体见书上P35. 没有前趋的结点称为初始结点,没有后继的结点称为终止结点,每个结点 ...

  9. 第二章 进程的描述与控制

    一.名词解释 1.进程上下文 进程执行活动全过程的静态描述. 包括计算机中与执行该进程有关的各寄存器的值.程序段在经过编译之后形成的机器指令代码集(正文段).数据集.各种堆栈和PCB结构. * 进程控 ...

  10. 操作系统学习笔记——第二章 进程的描述与控制(二)

    2.3 进程控制 进程控制是对系统中的全部进程实施有效的管理,包括进程创建.终止.进程阻塞和唤醒. 一.进程的创建 二.进程的终止 三.进程的阻塞与唤醒 四.进程的挂起与激活 一.进程的创建 创建原语 ...

最新文章

  1. python数据处理实例-Python数据分析实例操作
  2. (摘要)100个伟大的商业理念:理念34:企业社会责任
  3. C++学习笔记:(十)异常
  4. python学习笔记——文件
  5. python函数模块讲解_课堂练习讲解_模块化函数封装
  6. 动态规划经典算法--最长公共子序列 LCS
  7. java面向对象语言_Java到底是不是一种纯面向对象语言?
  8. php制作简单的用户登陆,如何用php代码实现简单的用户登陆以及登陆验证功能
  9. react 组件构建_让我们用100行JavaScript构建一个React Chat Room组件
  10. 九章基础算法04:二叉搜索树与哈希表
  11. 吐血整理了下AAAI2022中和NLP相关的论文,包括信息抽取、机翻、NER、多模态、数据增强、问答、多语言、KD、文本纠错等...
  12. 大数据工作由哪几部分组成
  13. 二叉树遍历的一些非递归算法
  14. 嵌入式Linux--全志V3s--NOR Flash的使用(二)移植Nor Flash
  15. python求和函数详解_python 中求和函数 sum详解
  16. 达梦DCA学习笔记202004
  17. ts找不到primeng/primeng
  18. azure云上 在线将oracle单实例扩展成oracle dataguard高可用集群的详细过程
  19. Arduino结合ESP8266 Serial WIFI模块访问远程服务器
  20. B站的“擦边球”生意

热门文章

  1. 神器!人工智能分离歌曲中的人声和背景音乐
  2. c语言程序ppt课件,c语言ppt课件
  3. Vscode代码量统计
  4. 一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(2)--添加一个布局和表格
  5. 模糊:让你的代码远离偷窥之眼
  6. 计算机专业交互式教学课件制作,简易交互式课件的制作
  7. 翻译: 深入神经网络概览Dive into Deep Learning
  8. 自己做量化交易软件(32)小白量化实战6--仿通达信公式选股
  9. android大智慧安装目录,大智慧文件目录
  10. IBM刀片服务器管理模块恢复出厂默认值实战