跟着小白学OS(二)

声明:所有学习笔记小编都是根据《王道考研》此书归纳总结的,持续跟新中。。。

进程的定义组成组织方式特征

进程的定义
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
程序:一个指令序列,早期计算机只支持单道程序
从不同的角度,进程可以有不同的定义,比较传统典型的定义有:
  1.进程是程序的一次执行过程。
  2.进程是一个程序及其数据在处理机上顺序执行时所发生的酒动。
  3.进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位 
进程的组成
PCB、程序段、数据段三部分构成了进程实体(进程映像)一般情况下, 我们把进程实体就简称为进程,
系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB) , 用来描述进程的各种信息(如程序代码存放位置)
例如, 所谓创建进程, 实质上是创建进程实体中的PCB; 而撤销进程, 实质上是撤销进程实体中的PCB.
注意:PCB是进程存在的唯一标志!
 程序段:程序代码存放在此如程序运行是使用的
 PCB
      进程描述信息
      进程控制和管理
      资源分配清单
      处理机相关信息
 数据段:存放程序运行过程中处理的各种数据

注:严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的.不过,除非题目专门考察二者区别, 否则可以认为进程实体就是进程。因此我们也可以说“进程由程序段、数据段、PCB三部分组成”
进程组织:
  1)链接方式:按照进程状态将PCB分为多个队列操作系统持有指向各个队列的指针
  2)索引方式:根据进程状态的不同,建立几张索引表
操作系统持有指向各个索引表的指针
进程的特征
进程和程序是两个截然不同的概念,相比于程序,进程拥有以下特征:
  1)动态性是进程最本的特征动态性进程是程序的一次执行过程,是动态地产生、变化和消亡的
  2)并发性内存中有多个进程实体,各进程可并发执行
  3)独立性进程是能独立运行、独立获得资源、独立接受调度的基本单位
  4)异步性各进程按各自独立的、不可预知的速度向前推进,操作系统要提供”进程同步机制”来解决异步问题
  5)结构性每个进程都会配置一个PCB.结构上看, 进程由程序段、数据段、PCB组成

进程的状态与转换

进程的状态
进程是程序的一次执行。在这个执行过程中, 有时进程正在被CPU处理, 有时又需要等待CPU服务, 可见,进程的状态是会有各种变化.为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。
  1)运行态(Running) :占有CPU, 并在CPU上运行
  2)就绪态(Ready) :已经具备运行条件, 但由于没有空闲CPU, 而暂时不能运行三种基本状态
  3)阻塞态(Waiting/Blocked,又称:等待态) 因等待某一事件而暂时不能运行
进程状态的转换
如下图所示在这里插入图片描述

进程控制

主要功能:实现进程状态的转换
原语:实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成
原语做的事情:
1.更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
  a.所有的选程控制原语一定都会修改进程状态标志
  b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
  c.某进程开始运行前必然要恢复期运行环境
2.将PCB插入合适的队列
3.分配/回收资源
进程控制的相关原语
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

进程通信

值进程之间进行信息交换
共享存储:
两个进程对共享空间的访问是互斥的
    1)基于数据结构的共享:比如共享空间里只能存放一个长度为10的数组,这种共享方式熟读慢、限制多是一种低级通信方式
    2)基于存储区的共享:在内存中画出一块共享存储区,数据的形式、存放位置都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快是一种高级通信方式
管道通信
管道:连接读写进程的一个共享文件
 1.管道只能采用半双工通信,某一时间段内只能实现单向的传输。如果要实现双向同时通信,则需要设置两个管道。
 2.各进程要互斥地访问管道。
 3.数据以字符流的形式写入管道, 当管道写满时, 写进程的write() 系统调用将被阻塞, 等待读进程将数据取走。当读进程将数据全部取走后, 管道变空, 此时读进程的read() 系统调用将被阻塞。
 4.如果没写满,就不允许读。如果没读空,就不允许写。
 5.数据一旦被读出,就从管道中被抛弃,这就意味着读进程最多只能有一个,否则可能会有读错数据的情况。
消息传递
进程间的数据交换以格式化的消息为单位进程通过操作系统提供的“发送消息/接受消息”两个原语今夕数据交换
理解消息传递

线程概念多线程模型

每一个进程可能包含多个线程,线程是一个基本的CPU执行单元成了程序执行流的最小单位
线程是处理机调度的单位,进程是资源分配的单位,内核线程才是处理机分配的单位
在这里插入图片描述
在这里插入图片描述
线程的实现方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多线程模型
多对一模型
在这里插入图片描述
一对一模型
在这里插入图片描述
多对多模型
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章