操作系统二1进程

Posted 念奕玥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统二1进程相关的知识,希望对你有一定的参考价值。

操作系统第二章

一、进程的定义、组成、组织方式

1、进程的定义

单道程序的时候:程序代码放在程序段内,程序的数据(如变量)放在数据段内。就一个进程。

引入多道程序之后,系统为每个运行的程序配置一个数据结构,常委进程控制块(PCB),用来描述进程的各种信息(如程序代码存放的位置)。

进程的定义:

2、进程的组成


3、进程的组织方式


在一个系统中,通常有数十、数百至数千个PCB,为了能有效的管理,应该以适当的方式把这些PCB组织起来。
进程的组织讨论的是多个进程之间的组织方式问题。

3.1 链接方式

3.2 索引方式

4、进程的特征


5、小结

二、进程的状态与转换

1、进程的状态

为什么需要设置进程的状态?
进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时需要等待CPU服务,进程状态会有各种变化。为方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。

进程的三种基本状态:

操作系统需要完成创建进程。操作系统为该进程分配所需的内心空间等系统资源,并为其创建、初始化PCB(如为进程分配PID)。
进程运行结束(或者因为bug导致进程无法继续执行下去,比如数组越界),需要撤销进程。操作系统完成撤销进程,需要将分配给进程的资源回收,撤销PCB等工作。

所以进程也存在另外两种状态

2、进程的转换

3、小结

三、进程控制

进程控制的主要功能是对系统中的所有进程实施有效的管理。它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
即,进程控制就是要实现进程状态转换。
进程状态转换图如下:

1、如何实现进程控制?

用原语(原语概念子啊操作系统内核部分提到过)实现进程的控制。
原语特点:执行期间不允许中断。不可中断的操作即原子操作。
原语采用“关中断指令”和“开中断指令”实现,且是只允许在 核心态下执行的特权指令。

2、进程控制相关的原语





3、小结

四、进程通信

小结总览:

进程之间为什么要通信?
进程通信就是指进程之间的信息交换。
进程是分配系统资源的单位(包括内存空间地址),因此各进程拥有的内存地址空间相互独立。
为了保证安全,一个进程不能直接访问另一个进程的地址空间。但进程之间的信息交换又是必须实现的(比如在网页中保存了一张图片,使用微信发送这张图片给别人)。为了保证进程之间的安全通信,操作系统提供了一些方法。

1、共享存储

2、管道通信

3、消息传递

4、小结

五、线程概念和多线程模型

知识总览

1、什么是线程?

为什么需要引入线程?
有时进程需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此引入了“线程”,来增加并发度。
引入线程之后,线程成为了程序执行流的最小单位(引入线程之前,进程是程序执行流的最小单位)。例如,QQ,视频聊天处理程序,传送文件处理程序,分别为两个线程,同一个进程(QQ)中。线程可以并发地执行下去。

线程是一个基本的CPU执行的那样,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各个线程之间也可以并发,进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)。
引入线程后,进程只作为除CPU之外的系统资源的分配单元(例如打印机、内容空间地址等都是分配给进程的)。

引入线程之后:

2、线程的属性

3、线程的实现方式:

3.1 用户级线程

3.2 内核级线程


4、多线程模型

在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”问题。

4.1 多对一模型

4.2一对一模型

4.3 多对多模型

5、小结

以上是关于操作系统二1进程的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 应用程序中保存本地数据?

在 plist 中保存单个 NSMutableDictionary

仅在 Pandas 中保留有限条目

操作系统二1进程

操作系统二1进程

操作系统二1进程