操作系统——第二章

进程的概念、组成和特征

(1)进程与程序的区别:

程序:是 静态的 ,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。
进程( Process ):是 动态的 ,是程序的一次执行过程。

(2)进程的组成——PCB、程序段和数据段

  1.PCB

  打开三次QQ,每打开一次就会创建一次进程,并为他分配独一无二的PID(进程ID)。而程序就是指QQ.exe。
  同时操作系统还会为每一个进程分配内存,记录PID,用户UID等等,会把这些统一的保存到一个数据结构中,叫做进程控制块PCB。 但凡管理时所需要的信息,都会被放在 PCB
 
  进程所属用户 ID UID):基本的进程描述信息,可以让操作系统区分各个进程。

2.程序段

指程序的代码(指令序列)。

3.数据段

运行过程中的各种数据。如程序中产生的变量。

PCB 给操作系统用的
程序段、数据段 给进程自己用的
 
进程 是进程实体的 运行过程 ,是系统进行 资源分配 调度 的一个独立单位。
注意: PCB 是进程存在的唯一标志!

(3)进程的特征

动态性(是进程最基本的特征):进程是程序的一次执行过程,是动态的产生、变化和消亡的。

并发性:内存中有多个进程实体,各进程可并发执行。

独立性:进程能独立运行、独立获得资源、独立接受调度的基本单位

异步性:各进程按各自独立的、不可预知的速度向前推进,操作系统是提供“进程同步机制”来解决异步问题。

结构性:每个进程都会配置一个PCB。从结构上看,进程由程序段、数据段、PCB组成。

总结:

 

 

进程的状态与转换

创建态:进程正在被创建时,它的状态是“ 创建态 ”,在这个阶段操作系统会为进程分配资源、初始化PCB
 
就绪态:当进程创建完成后,便进入“ 就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行。
 
运行态:当CPU空闲时,操作系统就会选择一个就绪进程,让它上处理机运行。
 
阻塞态:在进程运行的过程中,可能会 请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下CPU,并让它进入“ 阻塞态”。当CPU空闲时,又会选择另一个“就绪态”进程上CPU运行

终止态:此时该进程会进入“ 终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。当终止进程的工作完成之后,这个进程就彻底消失了。

 就绪态、运行态和阻塞态是三种基本状态。

 

进程的组织方式

操作系统运用什么样的方式将PCB组织起来进行管理。

(1)链接方式

(2)索引方式

 
 

 进程控制

进程控制是指实现进程状态转换。利用原语实现。

原语:原语是一种特殊的程序,它的执行具有原子性。也就是说,这段程序的运行必须一气呵成,不可中断

为何要求一气呵成?

如果不能“一气呵成”,就有可能导致操作系统中的某些关键数据结构信息不统一的情况,这会影响操作系统进行别的管理工作。
 
如何实现原语的“原子性”?
可以用 “ 关中断 指令”和“ 开中断 指令”这两个 特权指令 实现 原子性。 内核程序, 运行在 核心态
 
正常情况: CPU 每执行完一条指令都会例行检查是否有中断信号需要处理,如果有,则暂停运行当前这段程序,转而执行相应 的中断处理程序。

 

进程控制相关的原语

进程的创建:

进程的终止:

进程的阻塞和唤醒:

进程的切换:

总结:

的?
学习技巧:进程控制会导致进程状态的转换。无论哪个进程控制原语,要做的无非三类事情:
1. 更新 PCB 中的信息
a. 所有的进程控制原语一定都会修改进程状态标志
b. 剥夺当前运行进程的 CPU 使用权必然需要保存其运行环境
c. 某进程开始运行前必然要恢复期运行环境
2. PCB 插入合适的队列
3. 分配 / 回收资源
的管理工
如何

进程通信

进程通信:进程通信就是指进程之间的信息交换。

进程是分配系统资源的单位(包括内存地址空间),因此 各进程 拥有的 内存地址空间相互独立
 
为了保证安全, 一个进程不能直接访问另一个进程的地址空间 。但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。

 

(1)共享通信

  两个进程对共享空间的 访问 必须是 互斥 的(互斥访问通过操作系统提供的工具实现)。操作系统只负责提供共享空间和同步互斥工具(如P V 操作)。
 
基于数据结构的共享通信
  基于数据结构 的共享:比如共享空间里只能放一个长度为10 的数组。这种共享方式速度慢、限制多,是一种 低级通信 方式。
基于存储区的共享:
基于存储区 的共享:在内存中画出一块共享存储区,数据的形式、存放位置都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快,是一种 高级通信 方式。
 

(2)管道通信

 

(3)消息传递

总结:

线程的概念

在还没有引入进程之前,系统中各个程序只能串行执行。引入进程之后,程序就可以并发执行,如同时运行网易云和QQ(?这不是增加多个CPU就可以实现的吗?是指单CPU?那确实是可以实现)但是如果想用QQ同时聊天、视频和发送文件。进程是程序的一次执行,那么这些功能是无法由一个程序顺序执行而来实现的。

有的进程需要同时做很多事情,而传统的进程只能串行地执行一系列程序。为此引入了“线程”,来增加并发度。

可以把线程理解为“轻量级进程”。 线程 是一个 基本的 CPU 执行单元 ,也是 程序执行流的最小单位 。引入线程之后,不仅是进程之间可以并发,进程内的 各线程之间 也可以 并发 ,从而进一步 提升了系统的并发度 ,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)
引入线程后, 进程 只作为 CPU 之外的系统资源的分配单元 (如打印机、内存地址空间等都是分配给进程的)。 线程 则作为 处理机的分配单元
 
引入线程之后,有什么变化?
 
 
 
 
 
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值