操作系统(一)

发布 : 2019-04-19 分类 : 操作系统 浏览 :

《计算机操作系统》

进程

为了能使程序并发运行,并且可以对并发执行的程序加以描述和控制,人们引入了进程这一概念

什么是进程?

进程是程序并发运行的独立单位
进程是具有独立功能的程序在数据集合上的一次运行,是系统进行资源分配和调度的独立单位

在多道程序环境下,并发执行程序使得程序失去其封闭性、具有了间断性、以及不可复现性(难以控制)。–>有了并发运行的单位–进程;因此进程的特性有:

  1. 动态性 – 进程是程序的部分执行,是动态产生与销毁的
  2. 并发性 – 作为并发的单位,当然可以并发执行
  3. 独立性 – 作为并发的单位,需要独立的执行
  4. 异步性

伴随着进程生命周期有多个状态的转换,进程状态有: 创建、就绪、执行、阻塞、终止

进程是由 PCB 及资源构成。在创建进程时,则是先申请一个空白 PCB,并向 PCB 中填写用于管理和控制进程的信息,然后为进程分配运行时所必须的资源;之后在进程调度中进行就绪、执行、阻塞的转换。

进程状态

之前我们说到了 PCB,也就是进程控制块。这个数据结构就是支持进程能够并发运行。主要特性有:

  1. 能实现间段运行方式 – 通过保留 CPU 现场信息
  2. 提供进程管理所需要的信息
  3. 实现与其他进程的同步与通信

PCB 的具体结构有:

  1. 进程标识符
    用来唯一标识进程,有内部标识符与外部标识符
  2. 处理机状态
    也称为处理机上下文,主要就是 寄存器信息、指令计数器洗脑洗、程序状态字信息、用户栈指针
  3. 进程调度信息
    进程状态、进程优先级、。。。
  4. 进程控制信息
    程序和数据的地址、资源清单

PCB 也就是一个进程具体的数据结构,可以用线性连接的方式或者链表连接的方式将他们组织起来。

进程同步与进程通信

进程同步–多道程序并发执行提高了系统的吞吐量,但是也使系统变的复杂,为了使多个进程间有条不紊的运行,进程之间需要协调同步,保证程序执行的可再现性

进程同步机制有:硬件同步机制、信号量同步机制、管程机制

而进程通信则是进程同步需要进程通信以达到进程有序执行的协调。因此二者并非同意概念。

  • 什么是进程同步?

进程同步的主要目的是对多个相关进程在执行次序上进行协调,是并发执行的诸进程之间按照一定的规则或者次序共享系统资源,并能够很好的相互何做,从而使程序的执行具有可再现性。

  • 为什么要进程同步?

因为进程对系统资源的无序争斗会给系统造成混乱,致使程序处理结果存在不确定性

进程之间的运行存在者制约关系使得他们会趋向于同步:间接制约与直接制约

对于临界资源进程间只能互斥的访问(即同一时刻只有一个进程才可以访问。比如打印机等)

对于同步机制应当遵循以下规则:

  1. 空闲让进
  2. 忙则等待
  3. 有限等待
  4. 让权等待

进程同步中经典案例则是:生产者消费者问题

  • 什么是进程通信

进程通信是指进程之间的信息交换。由于进程的互斥与同步,需要在进程之间交换一定的信息,这种进程通信是低级通信;而相对的,进程间传送大量的数据,则为高级通信

具体的进程通信方式有以下几种:

  1. 共享存储器系统
  2. 管道通信系统
  3. 消息传递系统
  4. 客户机-服务机系统
    1. 套接字
    2. 远程过程调用(RPC)

线程

20 世纪 60 年代,人们引入了进程的概念解决了多道程序并发的问题,知道 80 年代,进程都是作为能拥有资源和独立调度(运行的基本单位);在 80 年待中期,人们引入了比进程更小的单位–线程,将进程中资源与调度剥离,线程在进程内部负责调度,大大提供高了系统吞吐量

回顾进程,进程是一个可拥有资源的独立单位,并且可以独立调度与分派(运行),进程创建时,需要创建一个空白的 PCB,然后系统填充进程信息,接着申请进程所需要操作的资源;在进程销毁时,有必须先对其所占资源执行回收操作,再撤销 PCB;在整个流程中时消耗过大的。每次进程的切换,都伴随着 CPU 状态的保存以及进程进行切换,但是进程内部存储信息过多,包含着资源,所以切换代价也是昂贵的。

因此,将进程中资源与调度分离,调度由更小的单位线程负责

线程的实现分为内核级线程与用户级线程。内核级线程有系统支持实现,用户级线程在软件层面实现

进程与线程异同

进程

  1. 定位、概念不同
    进程是资源和调度的独立单位
    线程是调度的基本单位
  2. 并发性
    线程并发行更加高
  3. 拥有资源
    进程拥有系统资源,而线程有一点点 LTS
  4. 独立性
    进程间独立,线程间共享进程资源
  5. 系统开销
    进程切换以及创建销毁非常耗费资源
本文作者 : 对六
原文链接 : http://duiliuliu.github.io/2019/04/19/操作系统一/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

你我共勉!

微信

微信

支付宝

支付宝

留下足迹