zoukankan      html  css  js  c++  java
  • 操作系统基础知识

    1.操作系统功能、类型、层次结构

    OS的作用:

      1.作为用户和计算机间的接口

      2.作为计算机系统资源的管理者

      3.实现了对计算机资源的抽象

    2.处理机管理(进程管理)

    进程:程序关于某个数据集合的一次执行过程

      特征:

        1.进程控制块(PCB)+程序+数据=进程实体

        2.进程实体的一次执行过程,有生命周期,是一个动态的概念;   程序是一组有序指令的集合,是静态的概念。

      基本状态:

        就绪状态(Ready):进程已获得除CPU之外的所有必须的资源,一旦得到CPU控制器,立即可以运行。

        运行状态(Running):进程已获得运行所必须的资源,它正在处理机上运行

        阻塞状态(Blocked):正在执行的进程,由于发生某事件而暂时无法执行时,便放弃处理机而处于暂停状态,称该进程处于阻塞状体、等待状态。

      就绪态(n-1)有进程,则执行态(1)至少有一个进程(取决于处理机的个数)

     

    进程的互斥与同步:

      进程间的制约关系:1.直接制约,进程合作;2.间接制约,资源共享

      临界资源(独占资源):一段时间内只允许一个进程访问的资源

      临界区:进程中访问临界资源的那段代码

    信号量机制:PV操作

      同步:制约关系

      互斥:临界资源。多缓冲区

      信号量:OS提供的管理公有资源的有效手段

        是一个整数。>=0,代表可供并发进程使用的资源数量;<0,表示阻塞态进程的个数。

        p操作:wait操作,申请资源,--,<0,活动就绪挂起进入静止就绪

        v操作:singnal操作,释放资源,++,<=0,阻塞状态进入就绪状态

        pv必须成对出现。

        <0,绝对值为等待的进程数;>=0,值为可用的进程数

      应用:(上午必考)

        实现进程互斥:初值:资源的个数;临界区在pv代码之间;

        实现前驱关系:初值:0;有n个有向边,设置n个信号量;前驱代码后跟v,p后跟后继代码,即前驱后继中间加vp操作

        实现同步关系:两进程合作完成一项任务而公用一个变量。

     

    进程调度:短程调度

      用来决定就绪队列中的哪个进程应获得处理机,然后由分派程序把处理机分配给该进程。

      (1)非抢占式:适用于批处理OS。(1.执行完成;2.发成I/O请求),才允许其他程序使用CPU

      (2)抢占式:适用于实时OS。(1.时间片原则;2.短作业(进程)优先原则;3.优先权原则,多用于实时系统)

    调度算法:

      (1)先来先服务:FCFS。最简单。利于长作业(进程),不利于短作业(进程)

      (2)短作业(进程)优先:SJF,SPF。预估运行时间最短的作业(进程)。利于短作业(进程),不利于长作业(进程);有效降低平均等待时间,提高系统吞吐量;未考虑作业的紧迫程度;按估计时间定的,无法做到真正短作业优先;

      (3)高优先权优先:FPF。常用于批处理OS,实时OS

      (3)时间片轮转:最古老,最简单,最公平,最广泛。时间片结束时,进程未运行结束,CPU将被剥夺分配给另一个进程,该进程到就绪队列尾重新排队;如果进程在时间片内阻塞、结束,CPU当即进行切换。

    优先权类型:

      (1)静态优先权:0-7的优先数,进程的整个运行期间保持不变,创建进程时确定。值越小,优先级越高

      (2)动态优先权:优先权随进程的推进、等待时间的增加而改变

    如何确定进程优先权:

      (1)高响应比优先调度算法:优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间。优先级随等待时间的增加而以速率a提高。值越大,优先级越高

      作业等待时间相同,要求服务的时间越短,优先权越高。利于短作业

      要求服务时间相同,则等待时间决定优先权的高低。先来先服务

      对于长作业,优先级随等待时间的增减而提高。等待足够时间,也可以获得处理

    死锁:多个进程在运行过程中,因争夺资源而造成的一种僵局。需要外力作用,使其向前推进

      原因:

      (1)竞争资源:资源有限,不足以满足多个进程的需求时,引起多进程对资源的竞争而产生死死锁。

      (2)进程间推进顺序非法:运行中,请求、释放资源的顺序不当

      系统中资源的分类:

      (1)可剥夺性资源:可以被高优先级的进程剥夺。CPU、内存……。不会引起死锁

      (2)不可剥夺性资源:分配给进程后,只有进程用完后才释放的资源。磁带机、打印机……。临界资源,会引起死锁

    死锁必要条件:

      (1)互斥:临界资源。某一时间内,某资源只由一个进程占用。

      (2)请求和保持:在请求新资源的同时,保持对已分配资源的占用。

      (3)不剥夺:已获取的资源,未使用完成,不能被剥夺。只能在使用完由自己释放。

      (4)环路等待:在发生死锁时,必然存在一个进程——资源的环行链。

      不会发生死锁的最少资源数:m*(n-1)+1;m,并发进程数;n:每个进程所需同类资源数;

    处理死锁:应当及时检测到,并采取适当措施来解除死锁。

      (1)预防死锁:简单、直观,事先预防。设置某些限制,破坏死锁的四个必要条件的一个或几个,来预防。摈弃“请求和保持”(要么都申请,要么都不申请);摈弃“不剥夺”(如果后面资源无法申请,释放已有资源);摒弃“环路等待”(资源编号,只能申请比前面资源编号大的资源)

      (2)避免死锁:事先预防。用某种方法去防止系统进入不安全状态。银行家算法

      (3)检测死锁:系统运行过程中。及时检测死锁的发生,并精确定位于死锁有关的进程和资源,采取适当的措施,清除死锁进程。

      (4)解除死锁:与检测死锁配套使用。撤销、挂起一些进程,回收资源,再将资源分配给处于阻塞状态的进程,使之进入就绪状态。可能使系统获得较好的资源利用率、吞吐量;但实现上难度大。

    3.存储管理

    4.设备管理

    5.文件管理

    6.作业管理

    7.嵌入式操作系统

  • 相关阅读:
    作业1-1 打印华氏温度与摄氏温度对照表
    python配置yaml
    python读写Excel方法(xlwt和xlrd)
    python发送邮件(smtplib)
    python之os模块(os.path)
    python简单面试题(2)
    python---Logging日志模块
    python---python装饰器
    如何从零开始学习自动化
    软件测试不得不知的基础知识
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/5797892.html
Copyright © 2011-2022 走看看