第四章-----进程

来源:互联网 发布:淘宝店铺网红 编辑:程序博客网 时间:2024/06/10 08:16

第四章—–进程

标签(空格分隔): 操作系统之哲学原理


  • 第四章进程
    • 进程概论
    • 进程模型
      • 进程模型的实现抽象整个进程的工作过程
    • 多道编程的好处
    • 进程的产生与消亡
    • 进程的层次结构
    • 进程的状态
    • 进程与地址空间
    • 进程管理
      • 进程管理所需要的手段
      • 进程的创建过程进程的产生过程
      • 进程管理要处理的问题
    • 进程的缺陷


进程概论

进程管理。内存管理和文件管理是操作系统的三大核心功能

什么是进程
就是一个程序加载到内存后就变成进程,进程=程序+执行;
进程让每一个用户感觉到自己独占CPU,因此进程就是为了在CPU上实现多道编程而出现的概念


进程模型

  • 物理层:每一个进程占用一片内存空间,因此这里看来进程就是内存的某片空间。但是在任意时刻一个CPU只能执行一条指令,进程也就只能有一个,到底执行哪一个进程由物理程序计数器指定从物理层来说所有的进程共用一个程序计数器
  • 逻辑层:每个进程可以执行,也可以挂起让别的进程执行,之后又接着执行。这样,进程就需要记住自己每次挂起时所处的位置。这样来说,在逻辑层来说每个进程都有自己的计数器,程序计数器可以有很多个
  • 时间层:每个进程都必须向前推进。运行一段事件后都有一定的工作量。不能返回。

注意:进程不一定必须终结,事实上,很多的系统进程是不会终结的,除非强制终止和关机

进程模型的实现(抽象整个进程的工作过程)

对于操作系统来说,进程是提供的一种抽象,目的是通过并发来提高系统利用率,同时还能缩短系统响应时间。
首先需要一个物理基础。进程的物理基础就是程序,程序运行在计算机上就需要解决进程的存储:给进程分配内存,由于可以多个进程并行,考虑如何使他们共享一个物理内存不发生冲突,于是就需要内存管理。此外多个进程在CPU上的执行需要进行交接或者切换,就需要解决另一个问题:进程调度


多道编程的好处

以前是理解错了,以为多个进程在同一时刻状态是可以同时执行的,其实不是这样的。假象是多个进程同时执行,但是是分时间轮流来的,同一时刻的CPU只能执行一个进程。多道编程的原理就是在一个进程使用完CPU后执行IO操作时就切换另一个进程,不会存在占着茅坑不拉屎的状态,于是就提高了CPU的利用率。当然道数的增加也是有限度的,叫做极限。超过这个极限之后,效果就会下降。

除了提高CPU的利用率外,更大的好处是改善了系统的响应时间,即用户的等待时间


进程的产生与消亡

进程的产生有很多种情况,类比人类来说:

  • 系统初始化(神创造人)
  • 执行进程创立程序(人生子)
  • 用户请求创立新进程(试管婴儿)

进程的消亡事件可以分为四种情况:

  • 寿终:进程完成运行退出
  • 自杀:进程因为错误而自行退出
  • 他杀:进程被其他进程终止
  • 处决:进程因异常而被强行终结

一般程序设计时追求的前两种。他杀:主要是父进程发出命令终止子进程。也可以一个用户杀死自己的进程,但是不能杀死别人的进程,只有超级用户才能杀死任何进程。处决:就是非法操作,例如除0或者访问出界。操作系统捕获到这种异常后终止造成异常的进程


进程的层次结构

父进程创建子进程,子子孙孙就是所谓的进程树

进程的状态

第一个肯定是执行。
下面来分析挂起,注意的是挂起!=阻塞
引起挂起的原因有两种:

  • 由于某种原因执行了阻塞操作,由于阻塞操作需要等待结果才能继续执行,于是这个进程就被操作系统挂起,让其他进程运转(自身原因)
  • 一个进程执行的时间太长,为了公平,操作系统将其挂起,让其他进程也有机会执行。(操作系统原因)

因此将进程状态分为三种:执行,阻塞,就绪

在三种状态之间进行转换有6种情况:

  • 执行—就绪
  • 执行—阻塞
  • 阻塞—就绪
  • 就绪—阻塞
  • 阻塞—执行(理论上可以,不过没有实际的价值而被操作系统禁止)
  • 就绪—阻塞(不能)

进程与地址空间

进程空间又叫地址空间。地址空间就是进程要用的所有资源。地址空间没有任何的动作。进程与地址空间的研究内容就是如何让多个进程共享一个物理内存。


进程管理

操作系统要知道要管理的内容的所有信息

进程管理所需要的手段

操作系统用于维护进程记录的结构就是进程表或进程控制模块(Process Control Block)PCB,保持在操作系统所在的内核空间,这里面存放的是有关进程的全部资料。一般来说:信息包括寄存器,程序计数器,状态字,栈指针,优先级,进程ID,信号,创建时间,所耗的CPU时间等等。采纳的数据结构主要是线性表,链表和结构。当然也是可以使用树或图。

进程的创建过程(进程的产生过程)

  1. 分配进程控制块
  2. 初始化机器寄存器
  3. 初始化页表
  4. 将程序代码从磁盘读进内存
  5. 将处理器状态设置为“用户态”
  6. 跳转到程序的起始地址(设置程序计数器)

注意到:第五步是处理器状态已经被设为用户态,而第六步的跳转指令是需要在内核态下进行的。于是就是需要硬件来帮忙了。硬件必须将5,6步作为一个步骤同时完成。

进程在不同的操作系统的创建方法是不尽相同的,Windows和UNIX就有很大的不同,各有优缺点

进程管理要处理的问题

  • 进程管理要处理的最大问题就是资源分配。希望所有的进程能够高兴的相处在一起。我们的本性还是追求公平的。
  • 还有一个问题要考虑,就是最优。效率问题。每个进程分配同样的资源肯定不行。不如让一部分人先富起来,给他们优先的资源使用权。

公平与效率就成了进程管理中的永恒主题,天平的不同倾斜将引出不同的进程管理模式


进程的缺陷

进程的好处:既提高了CPU的利用率,又缩短了系统的响应时间
进程的缺陷:只能在同一时间做一件事情。如果想同时做两件事情,进程就不够用了。
这里要注意区分的是:同时做两件事指的是在同一进程中,用两个进程分别做。从外部的角度来看,同时做两件事似乎事可以的。

0 0
原创粉丝点击