type
status
date
slug
summary
tags
category
icon
password

进程与线程

2.1.1+2.1.2进程的概念、组成和特征

进程的概念
1.进程是系统当中正在运行的程序,是程序的一次执行过程。 2.进程和程序的区别:程序是静态的,存放在磁盘中的可执行文件;进程是动态的,是程序的执行过程。 3.进程的唯一标识:操作系统为每个进程分配一个唯一的进程ID(PID)
进程ID和进程信息
1.PID:进程ID,是操作系统的身份证号,唯一且不重复。 2.进程信息:操作系统记录各个进程的CPU使用时间、用户ID、内存使用情况、磁盘访问情况和网络流量使用情况。 3.PCB:进程控制块,包含进程的描述信息、控制和管理信息、资源分配情况和处理机相关信息。
进程的组成
1.PCB:进程控制块,是操作系统管理进程所需的数据结构,包含进程的描述信息、控制和管理信息、资源分配情况和处理机相关信息。 2.程序段:包含程序的指令序列,是进程执行的代码。 3.数据段:存放程序运行过程中使用的数据,如变量值。 4.进程实体:是进程在动态执行过程中的快照,由PCB、程序段和数据段组成。
进程的特征
1.动态性:进程是动态产生、变化和消亡的。 2.并发性:内存中同时存在多个进程实体,可以并发执行。 3.独立性:进程能够独立运行、独立获得资源和独立接受调度。 4.异步性:并发执行的进程以不可预知的速度向前推进,结果不确定。 5.结构性:每个进程都由PCB、程序段和数据段组成。

2.1.3进程的状态与转换

进程的状态
1.进程的状态包括创建态、就绪态、运行态、阻塞态和终止态。 2.创建态:进程正在被创建,操作系统分配系统资源并初始化PCB。 3.就绪态:进程具备运行条件,等待CPU空闲。 4.运行态:进程正在CPU上运行。 5.阻塞态:进程等待某个事件发生。 6.终止态:进程运行结束,操作系统回收资源并撤销PCB。
进程状态的转换
1.创建态:进程被创建,分配资源并初始化PCB。 2.就绪态:进程具备运行条件,等待CPU空闲。 3.运行态:进程在CPU上运行。 4.阻塞态:进程等待某个事件发生。 5.终止态:进程运行结束,回收资源并撤销PCB。
进程的组织方式
1.链式方式:操作系统管理队列,每个队列指向相应状态的进程PCB。 2.阻塞队列:根据阻塞原因不同,分为多个阻塞队列。 3.索引方式:操作系统建立索引表,每个索引表指向相应的PCB。 4.大多数操作系统使用链式方式组织进程PCB。
notion image
进程状态和转换的高频考点
1.进程的状态和状态转换是考研高频考点。 2.理解进程的状态和转换对于操作系统原理的学习至关重要。

2.1.4进程控制

进程控制概述
1.进程控制的主要功能是对系统中的所有进程实施有效的管理。 2.进程控制包括创建新进程、撤销已有进程、实现进程状态转换等功能。 3.进程控制的核心是实现进程的状态转换。
notion image
进程控制的实现
1.进程控制用原语来实现。 2.原语是操作系统内核中的特殊程序,具有原子性。 3.原语的执行必须一气呵成,中间不可被中断。
notion image
进程状态转换的原子性
1.进程状态转换的过程需要一气呵成。 2.操作系统内核程序在状态转换过程中需要执行两件事情:更新PCB中的状态变量和将PCB从阻塞队列移到就绪队列。 3.如果状态转换过程被中断,可能导致PCB中的状态信息与队列信息不一致。
原语的实现方式
1.原语的实现需要关中断和开中断这两个特权指令。 2.关中断指令执行后,CPU不再例行检查中断信号。 3.开中断指令执行后,CPU恢复例行检查中断信号。 4.关中断和开中断之间的指令序列执行一气呵成,不可被中断。
进程创建原语
1.创建原语用于实现进程的创建。 2.创建原语的工作包括申请空白PCB、分配资源、初始化PCB、将PCB插入就绪队列。 3.进程创建事件包括用户登录、作业调度、进程请求创建子进程。
进程撤销原语
1.撤销原语用于终止进程。 2.撤销原语的工作包括找到PCB、剥夺CPU使用权、杀死子进程、回收资源、删除PCB。 3.进程撤销事件包括进程请求终止、非法事件、外界干预。
阻塞原语和唤醒原语
1.阻塞原语用于将进程从运行态转换为阻塞态。 2.阻塞原语的工作包括找到PCB、保护进程运行现场、设置PCB为阻塞态、将PCB插入阻塞队列。 3.唤醒原语用于将进程从阻塞态转换为就绪态。 4.唤醒原语的工作包括找到PCB、将PCB从阻塞队列移除、设置为就绪态、插入就绪队列。 5.阻塞原语和唤醒原语必须是成对使用。
切换原语
1.切换原语用于在进程之间进行切换。 2.切换原语的工作包括保存当前进程的运行环境信息、将PCB移到就绪队列、选择新进程、更新PCB内容、恢复新进程的运行环境。 3.切换原语实现进程状态的转换。
进程的运行环境
1.进程的运行环境包括寄存器中的中间结果。 2.当进程下处理机时,运行环境信息保存到PCB中。 3.当进程重新回到CPU运行时,从PCB中恢复运行环境。 4.保存和恢复进程运行环境是实现进程并发执行的关键技术。

2.1.5进程通讯(IPC)

notion image
进程间通信概述
1.进程间通信指两个或多个进程之间进行数据交互。 2.系统中可能同时存在多个进程,它们需要相互配合工作,因此进程间通信是必要的。 3.进程间通信的例子包括微博分享到微信等功能。
进程间通信的实现
1.进程间通信需要操作系统的支持。 2.操作系统分配给各个进程独立的内存地址空间。 3.进程p不能直接访问进程q的内存地址空间,出于安全考虑。
共享存储
notion image
1.共享存储允许进程申请一片共享存储区,其他进程也可以共享该区域。 2.进程p可以将数据写入共享存储区,进程q从该区域读取数据。 3.共享存储区可以被多个进程共享,用于数据交换。
共享存储的实现
1.Linux操作系统中,进程可以使用shm_open系统调用申请共享内存区。 2.进程使用mmap系统调用将共享存储区映射到自己的虚拟地址空间。 3.多个进程访问共享存储区需要保证互斥,操作系统提供同步互斥工具如pv操作。
共享存储的分类
1.基于存储区的共享:操作系统划分共享区域,进程决定如何使用该区域(高级)。 2.基于数据结构的共享:操作系统规定共享区域的数据结构,进程按格式访问(低级)。 3.基于数据结构的共享方式灵活性低,速度快;基于存储区的共享方式灵活性高,速度快。
消息传递
1.消息传递以格式化的消息为单位,通过操作系统提供的发送接收原语进行数据交换。 2.格式化消息由消息头和消息体组成,消息头包含发送者、接收者和消息长度等信息。 3.消息传递可分为直接通信方式和间接通信方式。
直接通信方式
notion image
1.直接通信方式指发送进程明确指定接收进程的ID。 2.操作系统将消息挂接收进程的消息队列中。 3.接收进程使用接收原语指定来源进程,操作系统从消息队 列中查找并复制消息体到进程用户空间。
间接通信方式
notion image
1.间接通信方式通过信箱进行消息传递。 2.进程申请信箱,发送进程将消息发送到信箱。 3.接收进程从信箱中接收消息,操作系统复制消息体到进程用户空间。
管道通信
notion image
1.管道通信类似于水管,数据从一端写入,从另一端读出,数据流向单向的。 2.管道是操作系统提供的特殊共享文件(pipe文件),本质上是内存中的大小固定的内存缓冲区。 3.管道通信中数据的读写是先进先出的。
管道通信的实现
1.管道只能支持半双工通信,同一时刻只能单向传输。 2.管道被写满时,写进程被阻塞;管道被读空时,读进程被阻塞。 3.多个读进程读取一个管道时,操作系统可能轮流读取,或只允许一个读进程[对此,通常 有两种解决方案:①一个管道允许多个写进程,一个读进程(2014年408真题高教社官方答案)(考试以此为准);②允许有多个写进程,多个读进程,但系统会让各个读进程轮流从管道中读数据(Linux的方案)]。
进程间通信方式的总结
1.共享存储:操作系统分配共享内存区,映射到进程虚拟地址空间,需保证互斥访问。 2.消息传递:以格式化消息为单位,通过发送和接收原语进行数据交换,可分为直接和间接通信方式。 3.管道通信:管道是特殊共享文件,内存中的大小固定缓冲区,数据读写先进先出,支持半双工通信。
Scikit-learn: Machine Learning in Python长难句
Loading...
Eabor
Eabor
A oxen and horses.
Latest posts
关于Notion的Tex
Dec 18, 2024
一些常用的高等数学中的公式
Dec 18, 2024
长难句
Dec 11, 2024
进程与线程
Dec 6, 2024
关于模型的分析
Dec 4, 2024
Scikit-learn: Machine Learning in Python
Dec 1, 2024