操作系统网课学习笔记(二)

进程的基本概念

顺序执行

仅当前一操作执行完毕后,才能执行后续操作。

特征

  • 顺序性

    处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。

    • 外部顺序性
    • 内部顺序性
  • 封闭性

    程序是在封闭的环境下运行的,它独占系统资源,执行过程中不受外界影响。

  • 结果可再现性

    程序执行得到的最终结果与程序执行速度无关,只要初始状态相同,每次执行结果必然相同。

并发执行

为了调高效率,允许若干个程序段同时在系统中运行。

特征

  • 间断性

  • 失去封闭性

  • 结果不可再现性

结论

并发环境下,"程序"一词对描述和管理系统下各并发任务的执行过程已经不适用了。

进程定义

进程是程序的一次执行

进程是一个程序及其数据在处理机上顺序执行时发生的活动

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单元。

传统OS中的进程定义:

“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。”

进程和程序的区别与联系

  1. 程序是指令的集合,是静态的概念。进程是程序在处理机上的一次执行的过程,是动态的概念。程序可以作为软件资料长期保存。进程是有生命周期的。

  2. 进程是一个独立的运行单位,能与其它进程并发活动。而程序不是。

  3. 进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。

  4. 一个程序可以作为多个进程的运行程序,一个进程也可以运行多个程序。

进程状态

  1. 就绪态 一个进程已经具备运行条件,但由于CPU暂时不能运行的状态。

  2. 执行态 进程占有CPU,并在CPU上运行。

  3. 阻塞态 也称为等待态、封锁态。指进程因等待某种事件的发生而暂时不能运行的状态。

阻塞态不能直接转执行态,还需放入到就绪态进行排队,因为这样高效并且简单。

挂起态

在系统资源不足的情况下,操作系统会对内存中的进程进行合理的安排,其中有的进程被暂时掉离出内存,即处于“挂起”状态。当条件允许的时候,会被操作系统再次调回内存,重新进入就绪态等待处理机调度

引入挂起状态的原因:

  1. 终端用户的请求

  2. 父进程请求

  3. 负荷调节的需求

  4. 操作系统的需求

进程状态的转换:

活动就绪->静止就绪
活动阻塞->静止阻塞
静止就绪->活动就绪
静止阻塞->活动阻塞

进程控制块

作用

存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的重要的数据结构,在进程创建时,系统为该进程建立PCB,并伴随其运行的全过程,直到进程撤销而撤销。

PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。

进程控制块中的信息

进程描述信息
  • 进程标识符

在这里插入图片描述

  • 进程家族关系

    父进程标识、子进程标识

  • 用户

    指示拥有该进程的用户

处理机状态 (CPU现场保护结构、进程上下文)
  • 通用寄存器

    又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息。

  • 指令计数器PC

    其中存放了要访问的下一条指令的地址。

  • 程序状态字PSW

    其中含有状态信息,如条件码、执行方式、中断屏蔽标志。

  • 用户栈指针

    指每个用户进程都有一个或者若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。

进程调度信息
  • 进程状态

    指明进程当前状态,作为进程调度和对换时的依据。

  • 进程优先级

    用于描述进程使用处理机的优先级别的整数,优先级高的进程应优先获得处理机。

  • 进程调度所需的其它信息

    它们与所采用的进程调度算法有关,如进程已等待CPU的时间总和,进程已执行的时间综合等。

  • 事件

    是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞的原因。

进程控制信息
  • 程序和数据的地址

    指进程的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据。

  • 进程同步和通信机制

    指实现进程同步和进程通信时必须的机制,如消息队列、信号量等。

  • 资源清单

    是一张列出了除CPU以外、进程所需的全部资源及已分配到该进程的资源清单。

  • 链接指针

    给出本进程(PCB)所在队列中的下一个进程的PCB的首地址。

进程控制

就是系统使用一些具有特定功能的程序段来创建进程、撤销进程以及完成进程各状态之间的转换,从而达到多线程高效率并发执行、实现资源共享的目的。

为防止OS本身或关键数据被其他程序破坏,一般将处理机执行状态分成以下2种:

  • 系统态(管态/内核态):它具有较高的特权,能执行一切指令,访问所有寄存器和存储区。

  • 用户态(目态):具有较低的特权,仅能执行特定指令,访问指定寄存器和存储区。

应用程序只能工作在用户态。

OS的内核一般包括以下2方面功能:

支撑功能:时钟管理、中断处理、原语操作

资源管理功能:进程管理、存储器管理、设备管理

原语 (Primitive)

系统态下执行的某些具有特定功能的程序段。

也指原子操作——不可分割的基本单位。

创建原语Create

进程创建过程:

  1. 申请空白PCB

  2. 为新进程分配资源

  3. 初始化进程控制块

  4. 将新进程插入就绪队列 (前提是有空间能接纳新进程)

进程创建的事件:

  • 用户登录

  • 作业调度

  • 提供服务: 以上三种由系统内核创建

  • 应用请求: 由用户自己创建

进程终止Delete

进程终止过程:

  1. 根据标识符,从PCB集合中检索出对应PCB,并读出进程状态。

  2. 若正处于执行状态,应立即终止该进程的执行,并置调度标志位真。

  3. 若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控得进程。

  4. 将被终止进程的全部资源归还给其父进程或系统。

  5. 将被终止进程的PCB从所在队列移出。等待其它程序来收集它的信息。

引起进程终止的事件:

  • 正常结束

  • 异常结束

  • 外界干预

异常结束:

出现某些错误和故障而迫使进程终止。

越界错误:程序所访问的存储区,已越出该进程的区域;
保护错:进程试图去访问一个不允许访问的资源或文件,或者以不适当的方式进行访问,如进程去写一个只读文件;
非法指令:程序试图去执行一条不存在的指令。如程序错误地转移到数据区,把数据当成了指令;
特权指令错:用户进程执行一条只允许OS执行的指令;
运行超时:进程的执行时间超过了指定的最大值;
等待超时:进程等待某事件的时间, 超过规定的最大值;
算术运算错:进程试图执行一个被禁止的运算,如除0;
I/O故障:这是指在I/O过程中发生了错误等。

外界干预:

外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。

操作员或操作系统干预:由于某种原因,例如,发生了死锁, 由操作员或操作系统终止该进程;
父进程请求:由于父进程具有终止自己的任何子孙进程的权利, 因而当父进程提出请求时,系统将终止该进程;
父进程终止。 当父进程终止时,OS也将他的所有子孙进程终止。

进程阻塞Block

阻塞是进程的自身调用阻塞原语而自我阻塞(主动行为)。而唤醒是引起阻塞的事件消失后,有关的“发现者”调用唤醒原语来唤醒被阻塞的进程,它们是一对逆过程。

阻塞是进程的主动行为

进程阻塞过程:

  1. 保存当前进程的CPU现场

  2. 置该进程的状态为阻塞状态

  3. 被阻塞进程进入等待队列

  4. 转进程调度

进程唤醒Wakeup

当被阻塞进程所期待的事件出现时,如I/O完成或其所期待的数据已经到达,则由有关进程(比如,用完并释放了该I/O设备的进程)调用唤醒原语wakeup( ),将等待该事件的进程唤醒。

唤醒原语 Wakeup() 不能自己唤醒

进程唤醒过程:

  1. 从等待队列中摘下被唤醒的进程

  2. 将被唤醒的进程置为就绪态

  3. 将被唤醒的进程送入就绪队列

  4. 转进程调度或返回

进程挂起Suspend

当出现了引起进程挂起的事件时,如用户进程请求将自己挂起,或父进程请求将自己的某个子进程挂起,系统将利用挂起原语suspend( )将指定进程或处于阻塞状态的进程挂起。

进程挂起过程:

  1. 检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。

  2. 为了方便用户或父进程考查该进程的运行情况而把该进程的PCB复制到某指定的内存区域。

  3. 若被挂起的进程正在执行,则转向调度程序重新调度。

进程激活Active

当发生激活进程的事件时,例如,父进程或用户进程请求激活指定进程,若该进程驻留在外存而内存中已有足够的空间时,则可将在外存上处于静止就绪状态的进程换入内存。这时,系统将利用激活原语active( )将指定进程激活。

进程激活过程:

  1. 激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。

  2. 假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值