操作系统(2)
-----2.1-----
进程的概念
程序:是静态的,就是存放在磁盘里的可执行文件,就是一系列指令的集合
进程:是动态的,是程序的一次执行过程( 同一个程序 多次执行会对应 多个进程 )
进程的组成 -- 进程控制块 【PCB(Process Control Block)】
操作系统对进程进行管理工作所需的信息都存在PCB中
- PCB是进程存在的唯一标志,当进程被创建时,操作系统会为其创建PCB,当进程结束时,会回收其PCB
进程实体( 其反映了进程在某一时刻的状态 )
一个进程实体是由PCB、程序段、数据段组成的
进程是动态的,进程实体(进程映像)是静态的,进程是进程实体的运行过程
- 打开QQ三次,会对应三个QQ进程,它们的PCB、数据段都不同,但程序段的内容是相同的(因为都是运行着同样的QQ程序)


-----2.2-----
进程的状态(
创建态、【就绪态、运行态、阻塞态】、终止态)
-
创建态:当进程正在被创建,其状态就是创建态,在这个阶段操作系统会为其分配资源,初始化PCB -
就绪态:当进程创建完成后,就进入就绪态,处于就绪态的进程具有运行条件,但由于没有空闲的CPU,就暂时不能运行
系统中可能会有很多个进程处于就绪态,当CPU空闲时,就会选择一个就绪的进程上处理机(CPU)运行
-
运行态:如果一个进程正在CPU上运行,那么其就处于运行态,CPU会执行该进程对应的程序(执行指令序列) -
阻塞态:在进程运行过程中,可能会请求等待某个事件的发生,在这个事件发生之前,进程无法继续往下执行,那么操作系统就会让该进程下CPU,并让其进入阻塞态 -
当CPU空闲后,又会让另一个就绪态的进程上CPU运行
-
当阻塞态的进程请求等待的事件发生时,其又会变为就绪态
-
终止态:当一个运行态进程发出exit系统调用(请求操作系统终止该进程),该进程就处于终止态,那么操作系统就会让其下CPU,回收内存空间等资源,最后回收该进程的PCB -
当终止进程工作完成后,进程就消失了
进程状态的转换


- 进程PCB中,会有一个变量
state来表示进程的当前状态

进程的组织(
链接、索引)
链接(大多数使用):

索引:

-----2.3-----
进程控制:实现进程状态的转换(用
原语实现)
-
原语的执行具有“原子性”,一气呵成,期间不允许被中断
-
实现原语的“原子性”:
关中断指令、开中断指令

仅限于外中断,如果在关中断指令和开中断指令之间有 内中断指令 ,依旧会执行内中断指令



- 访问 PCB 是内核数据结构,需要内核权限,因此进程的切换需要CPU“变态”
-----2.4-----
进程通信“IPC”(共享存储、消息传递、管道通信):指两个进程之间产生数据交互
- 各进程拥有的内存空间地址相互独立,为了安全,一个进程不能直接访问另一个进程的地址空间
共享存储(基于数据结构的共享、基于存储区的共享):
-
基于数据结构的共享:灵活性差、速度慢
-
基于存储区的共享:灵活性高、速度快
基于存储区的共享:

(多个进程可以同时在共享空间读取,但不能同时在共享空间写入)
基于数据结构的共享( 比如int类型的数组 ):



消息传递:(直接通信方式、间接通信方式)
直接通信方式:需要指明是发送给哪个进程消息 / 接收哪个进程的消息

间接通信方式( 信箱通信方式 ):需要指明是在哪个信箱 传递 / 接收 消息

管道通信:写入读取数据遵循 “先进先出原则”,写入读取是单向的(但方向在一次读取写入结束后可以改变),如果想实现双向,则应再设置一个管道


浙公网安备 33010602011771号