操作系统知识点总结(第二章 进程的描述与控制)

基于计算机操作系统(第四版)

第二章 进程的描述与控制

  • 程序顺序执行时的特征:顺序性、封闭性、可再现性
  • “并发”:在多道环境下,系统具有了许多比单道环境下更复杂的情况,我们把多道环境下的程序设计叫做并发程序设计。
  • 程序并发执行提高了系统的吞吐量和资源利用率
  • 程序并发执行时的特征:间断性,失去封闭性,不可再现性
  • 程序:在时间上严格有序的指令或语句序列,体现了某种算法,程序规定了计算机需做的操作的执行顺序。
    特点:独占性、顺序性、可再现性
  • 进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运行活动。

进程和程序的区别:

程序 进程
程序是指令的集合,是静态的概念 进程是程序在处理机上的一次执行的过程,是动态的概念
程序的存在是永久的。程序可以作为软件资料长期保存。进程的存在是暂时的。进程是有生命周期的“一次运行活动”,诞生(建立)、死亡(撤销)。
进程=程序+数据+PCB,即进程是一个程序及其数据在处理机上顺序地执行时所发生的活动
进程是一个独立的运行单位,能与其它进程并行活动。而程序则不是。
进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。
一个程序可以作为多个进程的运行程序,一个进程也可以运行多个程序。
  • 进程的三种基本状态:就绪状态、执行状态、阻塞状态

在这里插入图片描述

阻塞状态有时也称为等待状态或封锁状态。
被阻塞的进程必须经过就绪才能被重新调度。

  • 为满足进程控制块对数据及操作的完整性要求以及增强管理的灵活性,通常在系统中又为进程引入了两种常见的状态:创建状态和终止状态。
    在这里插入图片描述

  • 进程控制块中的信息:
    1.进程标识符
    2.处理机状态
    3.进程调度信息
    4.进程控制信息

  • 进程终止原因:
    正常结束。
    异常结束:①越界错;②保护错;③非法指令;④特权指令错;⑤运行超时;⑥等待超时;⑦算术运算错;⑧I/O故障。
    外界干预:①操作员或操作系统干预;②父进程请求;③因父进程终止。

  • 两种形式的制约关系:资源共享关系、相互合作关系。

  • 同步:多个并发进程的相关进程在执行速度上的制约

  • 临界资源:一次仅允许一个进程使用的资源

  • 临界区:在每个进程中访问临界资源的那段代码称为临界区

  • 同步机制应遵循的原则:空闲让进;忙则等待;有限等待;让权等待;多中择一。

  • 硬件同步机制:1.进入临界区前执行“关中断”,离开临界区后执行“开中断”。
           2.利用Test-and-Set指令。
           3.利用swap指令。

  • 利用swap指令缺点:
    ①未实现让权等待。
    ②可能“饥饿”(一个进程一直得不到资源)
    ③可能死锁
    优点:
    ①适用于任意数目的进程
    ②简单、容易验证其正确性

★信号量机制
  • P原语 P(s)/wait(s)
    申请使用临界资源时调用P原语
    P操作一次,s-1

  • V原语 V(s)/signal(s)
    释放临界资源,唤醒进程等待队列中的投一个进程
    V操作一个,s+1

  • 每次wait操作,意味着进程请求一个单位的该类资源,使系统中可供分配的该类资源数减少一个。遵循“让权等待”原则。每次signal操作表示执行进程释放一个单位资源,使系统中可供分配的该类资源数增加一个。

  • s≥0 有资源,当前进程可执行
    s<0 无资源,绝对值为在等待进程的数量

  • 注:①P、V操作必须成对出现。
    ②对每个程序的多个P操作,顺序不能颠倒,否则死锁。

  • AND型信号量:将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。

  • P、V操作的优点:简单、表达能力强(用P、V操作可解决任何同步互斥问题)
    缺点:不够安全,P、V操作使用不当会出现死锁;遇到复杂同步互斥问题时实现复杂

  • 互斥信号量mutex,公有信号量

  • 当mutex=1时,表示两个进程皆未进入需要互斥的临界区;当mutex=0时,表示有一个进程进入临界区运行,另外一个必须等待,挂入阻塞队列;当mutex=-1时,表示有一个进程正在临界区运行,另外一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程退出时唤醒。

★★经典进程的同步问题

1. 生产者-消费者问题

若干进程通过一共享缓冲池(包含有限N个缓冲区)交换数据,生产者进程不断写入,消费者进程不断读出。

利用记录型信号量解决生产者-消费者问题:

  • 互斥:任意时刻只能有一个进程可对共享缓冲池操作
    同步:缓冲区不满生产者才能写入,缓冲区不空消费者才能读出
  • ①每个程序中用于实现互斥的wait(mutex)和signal(mutex)必须成对地出现。
    ②对资源信号量empty和full的wait和signal操作,同样需要成对地出现,但它们分别处于不同的程序中。
    ③在每个程序中的多个wait操作顺序不能颠倒,否则可能引起进程死锁。

利用AND信号量解决:简洁、避免死锁的发生。

2.哲学家进餐问题
实现对筷子的互斥使用。

3.读者-写者问题
允许多个进程同时读一个共享对象。只要有一个Reader进程在读,便不允许Writer进程去写。

4.理发师睡觉问题

例题

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

线程
  • 线程是进程内的一个相对独立的、可独立调度和指派的执行单元
  • 线程控制块TCB
  • 16
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
操作系统是计算机系统中最基础的软件之一,它负责管理和控制计算机的硬件和软件资源,为用户和应用程序提供一个良好的工作环境。在第二章的课后programming project中,我们需要实现一个简单的操作系统,下面我将用300字中文来回答这个问题。 为了完成这个项目,我们需要考虑以下几个关键概念: 1. 进程管理:操作系统需要管理计算机中的进程,包括创建、终止、切换和调度进程。我们可以使用多线程来模拟进程,并使用调度算法决定进程的执行顺序。 2. 内存管理:操作系统需要管理计算机的内存资源,包括为进程分配内存空间、地址映射和内存回收。我们可以使用虚拟内存和页表来实现内存管理。 3. 文件系统:操作系统需要提供文件管理功能,包括文件的创建、读写和删除。我们可以使用文件控制块来描述和管理文件,并使用文件系统调用来实现文件操作。 4. 设备管理:操作系统需要管理计算机的硬件设备,包括输入输出设备、磁盘和网络等。我们可以使用设备驱动程序来控制硬件设备,并使用中断来处理设备的响应和中断事件。 在实现这个操作系统的过程中,我们需要熟悉操作系统的原理和概念,如进程管理、内存管理、文件系统和设备管理等。我们可以使用编程语言如C、C++或Java来实现这个操作系统,并使用模拟器来模拟计算机硬件的行为。 总的来说,课后programming project是一个很好的方式来深入学习和理解操作系统的概念和原理。通过实际动手实现一个简单的操作系统,我们可以更好地理解操作系统的工作原理,提高我们的编程能力和操作系统的应用能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶柖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值