【软考总结】——再学操作系统

时间:2022-08-16 14:22:22

概述

       在软考视频中,再次学习了操作系统,但是这次学习操作系统没有以前的那么系统,主要是复习软考中 的考点,所以没有之前学得那么全面,但是也算是巩固了一遍知识。所以这次总结是视频讲到的内容为主。视频看了很久了,就是没有为这一章写个总结,所以很多知识都快忘得差不多了,所以需要自己到网上查找资料,但也从中学到了很多知识。

     【软考总结】——再学操作系统

           

进程及状态变化。

 

       进程这个概念有些忘得差不多了,但是别担心,网上搜搜就知道了。进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程可以申请和拥有系统资源,是一个活动的实体,它不只事程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。它是一个动态的概念,所以动态是变化的,在变化的过程中呈现出不同的状态,而这些状态是不断地变化。


      1、就绪状态:进程已得到运行所需资源,只等待CPU的调度可运行;


      2、运行状态:进程已得到运行所需资源,并且得到了CPU的调度;


      3、等待状态:不具备运行条件、等待时机的状态,等待状态也称阻塞状态。


       就绪状态和等待状态的区别是:就绪是等待CPU的调度,而等待状态是除了等待CPU调度以外的等待。一个进程处于等待状态时,即使处理器资源分配给它,它也无法运行。

 

      下图是进程的状态变化,如一个进程的初始状态是等待状态,当进程满足所需的条件,进入就绪态,等待cpu的调度;当这个进程被CPU调度后,进入运行态,当进程进入运行的时候,系统分给它的时间片用完了,但是进程还没有运行完,进程再次进入就绪态,如果在时间片内进程运行完,之后,进程再次等待某个事件发生,进入阻塞态。


 

死锁


进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一个不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。

 

      死锁发生的必要条件:

      1、互斥条件:即一个资源每次只能被一个进程使用,在操作系统中这是真实存在的情况。如在水房洗漱,你占用一个水龙头,其他人就不能使用了。


     2、保持和等待条件:有一个进程已获得了一些资源,但因请求其它资源被阻塞时,对已获得的资源保持不放。如在水房有一些人用自的盆子占着一个水龙头,其他人就不能使用这个水龙头了,但是这个水龙头又没有人使用。


     3、不剥夺条件:有些系统资源是不可剥夺的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。如你用水龙头接水,扭开了水龙头,水是一直在流的,这些水是不能被收回的,只用当你接满水,把水龙头关上,你离开了,别人才可以在这个水龙头上接水。


     4、环路等待条件:若干个进程形成环形链,每个都占用对方申请的下一个资源。如你在使用水龙头,别人在等你使用完后再用,所以你占用着他即将要使用的这个水龙头。


    解决死锁的策略


     1、死锁预防:如要求用户申请资源时一起申请所需的全部资源,这就破坏了保持和等待条件,将资源分层,得到上一层资源后,才能够申请下一层资源,它破坏了环路等待条件。预防通常会降低系统的效率。


     2、死锁避免:避免是指进程在每次申请时判断这些操作是否安全,典型算法是“银行家算法”。但这种算法会增加系统的开销。


     3、死锁检测:前两者是事前措施,而死锁的检测是判断系统是否处于死锁状态,如果是,则执行死锁解除策略。


    4、死锁解除:这是与死锁检测结合使用的,它使用的方式就是剥夺,即将资源强行分配给别的进程。

 

前趋图

     前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句:结点建的有向边则用于表示结点之间存在的偏序(Partial Order)或前趋关系(Precedence Relation)。


PV操作


在PV操作中,主要的内容就是同步和互斥,其它内容基本上就是这两点的延伸。


互斥

      在视频中讲到一个很有趣的例子,互斥就是千军万马过独木桥。我过了,别人就不能过了,再加一个人不是桥塌就是两个人都掉下去。

 

同步

      同步就如田径场上的赛跑,甲乙丙丁四个人一起赛跑,终点一样,同时进行,但是速度和距离终点的长度也不一样。

 

存储


     存储分为实存和虚存。


实存


     在存储中涉及到程序的装入,也就是重定位,而重定位分为静态重定位和动态重定位。静态重定位是在许空间程序执行之前由装配程序完成地址影射工作。动态重定位是在程序执行过程中,在CPU访问内存之前,将要访问的程序或数据地址转换为内存地址。


    存储管理的任务是存储空间的分配与回收,操作系统中通常有单一连续分配、固定分区分配、可变分区分配。

在可变分区分配方式中,当有新作业申请分配内存时所采用的存储分配算法有以下四种:


      1、最佳适应法:选择等于或最接近作业需求的内存*区进行分配。这种方法可以减少碎片,但同时也可能带来更多小得无法再用的碎片。


     2、首次适应法:从主存地址开始,寻找一个可用(即大于等于作业需求的内存)的*区。这种方法可实现快速分配,缩短查找时间。


     3、最差适应法:选择整个主存中的最大的内存*区。


     4、循环首次适应算法:是首次适应法的一个变种,也就是不再是每次都从头开始匹配,而是连续向下匹配。

 

虚存


       虚存是局部性原理,一个是时间局部性和空间局部性。记得在5楼学习牛津词典的时候,有时候打不开牛津词典,提示内存不足,解决办法是增加电脑里的虚拟内存。可能这个和虚存多少也有点关系吧。

 

 

作业管理


      作业管理主要是作业调度的问题,作业的调度算法有先来先服务、最短作业优先、最高响应比优先算法、定时轮转和优先数

 

文件目录

 

       为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录。文件目录分为一级和二级目录,当文件目录这样一级一级往下存下去的时候,就形成了树形目录。


总结

     

       再学一遍操作系统,觉得很熟悉,挺有共鸣,但还是有很多问题没有得到理解和掌握,接下来还会再接触,再学习,相信自己能把不理解的、理解起来有困难的知识点学透。