操作系统概述及进程管理

操作系统的概述

        操作系统的作用

                通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。

        操作系统的分类

                批处理操作系统、分时操作系统(轮流使用CPU工作片)、实时操作系统(快速响应)、网络操作系统、分布式操作系统(物理分散的计算机互联系统)、微机操作系统(Windows)、嵌入式操作系统。

        操作系统的功能

                进程管理、存储管理、文件管理、设备管理、作业管理

        操作系统的特征

                并发性、共享性、虚拟性、不确定性

进程管理

        进程的组成和状态

                进程是计算机中正在运行的程序的实例。它是操作系统进行资源分配和管理的基本单位,包括代码、数据和执行状态等信息。

                进程的组成:进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)。

                进程基础的状态是下左图中的三态图,这是系统自动控制时只有三种状态,而下右图中的五态,是多了两种状态:静止就绪和静止阻塞,需要人为的操作才会进入对应状态,活跃就绪即就绪,活跃阻塞即等待。

         前趋图

                用来表示哪些任务可以并行执行,哪些任务之间有顺序关系

                具体如下图:

                 如图可知:ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序。

        进程资源管理

                进程资源图:用来表示进程和资源之间的分配和请求关系

                下图所示:

                P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要P1请求一个R2资源才能执行。

                阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。

                非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。 当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。

        同步与互斥

                互斥:某资源(即临界资源)在同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机。

                同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题;如自行车和汽车。

                临界资源:各进程间需要以互斥方式对其进行访问的资源。

                临界区:指进程中对临界资源实施操作的那段程序。

                互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1。

                同步信号量:对共享资源的访问控制,初值一般是共享资源的数量

        信号量

                P操作:申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。

                V操作:释放资源,S=S+1,若S>0,代表此时资源有空余,没有阻塞的进程,则该进程继续执行;若S<=0,代表此时线程在被阻塞,所以需要从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。

         死锁

                当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁。

        死锁产生的四个必要条件

                资源互斥

                每个进程占有资源并等待其他资源

                系统不能剥夺进程资源

                进程资源图是一个环路

        死锁产生后,解决措施是打破四大条件,有下列方法:

                死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。

                死锁避免: 一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。

                死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。

                死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。

                死锁计算问题:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1

        线程

                传统的进程有两个属性:可拥有资源的独立单位可独立调度和分配的基本单位

                引入线程后,线程是独立调度的最小单位进程是拥有资源的最小单位线程可以共享进程的公共数据、全局变量、代码、文件等资源,但不能共享线程独有的资源,如线程的栈指针等标识数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值