• (1)操作系统概述


    最近开始学习操作系统,总结第一章用于复习。水平有限,若有出错,烦请指正。

    首先18年408考试大纲对操作系统的要求,分值为35分。

    这是对第一章的要求:我们就按照这个来复习吧

    这样我们就知道了,第一章我们需要理解->什么是操作系统,为什么需要操作系统,它能实现什么,它的发展是怎么样的,每一代有什么样的特点等等。。。

     (一)操作系统的概念,特征,功能和提供的服务

      概念:

         1.资源管理的观点:操作系统是控制和管理计算机的软、硬件资源,合理地组织计算机的工作流程,以及方便用户的程序集合。

            2.用户的观点:操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的第一次扩充。

            操作系统内部分为3个层次:1.操作系统对象  2.控制和管理的软件集合   3.用户接口

      特征:并发性、共享性、虚拟性、异步性

         1.并发体现在两个方面:1.用户程序与用户程序并发  2.用户程序与系统程序并发

         2.共享是操作系统程序和多个用户程序共用系统中的资源。

         3.虚拟性是指通过某种技术将一个物理实体变为若干个逻辑对应物。在操作系统中利用时分复用技术与空分复用技术来实现虚拟。 

          例如一个8核cpu,可以运行远不止8个程序,这就是将一个实际CPU虚拟成多个逻辑CPU的结果

         4.异步性即不确定性。同一程序和数据的多次运行可能得到不同的结果;程序的运行时间、运行顺序也具有不确定性;外部输入的请求、运行故障发生的时间难以预测。

      功能:功能可以从操作系统需要完成的任务去记忆,即完成相应任务对应功能

         1.处理器管理:主要包括进程控制和管理,进程同步和互斥,进程通信,进程调度,进程死锁  

         2.存储器管理:包括存储分配,存储共享,存储保护,地址转换,存储扩充  

         3.设备管理:设备控制于处理,设备分配于回收,设备独立性,缓冲区管理和虚拟设备  

         4.文件管理:文件存储空间管理,目录管理,文件读写管理,文件共享保护,和存取控制

      服务:系统服务(system services)是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。

     (二)操作系统的发展与分类

        未配置操作系统的计算机系统人工方式

    存在两方面缺点,一是用户独占全机;二是CPU等待用户操作;人工操作使得计算机效率低下,这也被称为人机矛盾,主要体现在CPU速度和IO设备速度的不匹配上面。

    脱机输入/输出方式

    用户首先将记录有程序和数据的纸带在外围机的控制下输入磁带上,然后当CPU需要这些数据的时候便直接从磁带上获取;当CPU输出时,也是先将数据从高速内存送到磁带,然后再通过另外的外围机将磁带上的结果通过相应输出设备进行输出;因为系统的输入和输出都是在外围机的控制下完成,即在脱离主机的情况下完成,这种方法称为脱机输入/输出方式。这种方式有两个好处:

    一是减少了CPU等待时间。因为装带、卸带、数据从低速IO设备到高速磁带(或者相反)的操作是在外围机上进行的,并不占用主机时间。但是,这是从一道作业执行的角度来看,当有多道作业需要处理时,作业切换时间仍旧存在,即磁带上还是只有一道作业的数据。

    二是提高了IO速度。CPU从磁带上获取数据的速度要高于从纸带上直接获取的速度。IO速度虽然提高,但和CPU的处理速度还是不匹配的。

    这个时期的计算机属于第一代计算机。

    一.单道批处理系统

    为实现对作业的连续处理,将一批作业以脱机输入/输出的方式输入到磁带上,并为系统添加监控程序,计算机系统在监控程序的控制下,连续处理这一批作业;

    虽然系统对作业的处理是成批进行的,但是内存中始终还是只有一道作业,故称为单道批处理系统。单道批处理系统旨在解决人机矛盾和CPU与IO设备速度不匹配的问题。这和操作系统的目的是一致的,但是单道批处理系统仍然不能充分利用系统资源,最终被淘汰。

    单道批处理系统的缺点主要体现在当程序发出IO请求后,CPU便处于等待状态,必须在IO处理结束后才能继续处理,而IO设备的速度又不是很高(和CPU的处理速度相比),所以CPU的空闲时间仍旧很多。

    从这里可以看出,单道批处理系统减小了作业切换时间,即减少了CPU在系统执行某一作业之前以及之后的空闲时间,但是并没有减少CPU在处理作业过程中产生的空闲时间。即磁带上存有多道作业,但是内存中仍然只有一道作业。

    这个时期的计算机多属于第二代晶体管计算机

    二.多道批处理系统

    为了进一步提高计算机系统的吞吐量和资源利用效率,出现了多道批处理系统。多道批处理系统将用户提交的作业视为一个队列,然后由作业调度程序按照一定的算法从该队列中选出若干作业调入内存,使它们共享计算机系统资源。由于内存中存在多道作业,当一道作业发出IO请求时,CPU可以执行其他作业,从而减少了CPU空闲时间。
    多道批处理系统的优缺点:
    1.资源利用效率高:该方式减少了CPU在处理作业中产生的空闲时间,同时内存中存有多道作业,也提高了内存的利用效率,IO设备的利用率也得到了提高;
    2.系统吞吐量大:这是因为CPU等系统资源一直处于“忙碌”状态,并且只有当作业完成以及无法继续执行时才发生调度切换,系统的开销也相对较小。(即没有频繁的切换)
    3.平均的周转周期长,因为作业要排队被处理。
    4.作业和用户之间没有交互能力。一旦作业被送入系统,直到作业完成,用户都不能和作业进行交互,这为程序调试带来不便;
    多道批处理系统需要处理的问题:
    1.处理机分配问题:既要满足各道作业的运行需求,又要提高处理机的利用率;
    2.内存分配和保护问题:系统需要为每道作业分配必要的内存空间,同时要保证该空间不被其他作业打扰;
    3.IO设备分配问题:同处理机有相同的要求;
    4.文件组织和管理问题:系统既要有效组织存放在系统中的大量的程序和数据又要便于用户使用,保证数据的安全性;
    5.作业管理问题:系统中存在各种作业,需要对它们进行管理;
    6.用户和系统的接口问题:用户和计算机系统的交互方式,计算机系统应该对用户友好。
    从这里可以看出,随着系统功能和性能的提高,所涉及的管理管理越来越多:从没有管理程序到为系统添加监督程序,再到增加调度程序等。而这些软件正是操作系统的重要组成部分。

    三.分时系统

    由于多道批处理系统中用户没有办法同作业进行交互,为满足用户同作业的交互,一种新型的操作系统出现了,即分时系统。分时系统的出现是为了满足用户对人-机交互的需求,此时计算机系统不再单纯的执行计算任务,具有了人-机交互能力的计算机系统,功能上将更加丰富。同时由于计算机系统当时比较昂贵,一台计算机要同时供很多用户共享使用,用户希望共享的过程更加友好即共享状态下的使用就像是独占使用。
    分时系统需要解决的问题:
    及时接受:为解决该问题,分时系统中配有多路卡。多路卡的作用就是分时多路复用,即主机以很快的速度周期性扫各个终端,接收数据。比如,有64个终端共享一台计算机主机,那么只需配置一个64多路卡。同时还需要为每一个终端分配相应的缓冲区进行暂存用户的命令。
    及时处理:人机-交互的关键是用户可以对其程序进行实时控制,这要求用户的程序需要在用户发出控制指令的时候位于内存当中并且频繁获得处理机进行运行;否则就无法实现用户控制;因此,分时系统彻底改变了批处理系统的运行方式:
    作业直接入内存。
    采用轮转运行的方式,引入时间片的概念,每一个程序每次只能运行一个时间片的时间,从而避免一个作业长期占用处理机的现象;
    分时系统的特点:
    多路性:多台终端(显示器和键盘,即输入和输出设备)同时连接到一台主机,按分时原则共享系统资源;
    独立性:各个终端独立运行,互不干扰;
    及时性:用户的请求通常在很短时间里就能得到响应。
    交互性:用户通过终端可以同系统进行广泛的交互。即请求系统提供多方面的服务。
    促进多道批处理系统形成和发展的主要动力是提高系统吞吐量和资源利用率,而促进分时系统形成和发展的主要动力则是用户关于人机交互以及共享主机的需求;

    四.实时系统

    实时系统是这样的一个系统:系统的正确性不仅通过运算结果确定还取决于产生这些结果的时间,它必须对所接受的信号及时或者实时做出响应。即实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调统一地运行;实时任务可以分为周期性实时任务和非周期性任务,它们都有一个Deadline,包括开始截止时间以及完成截止时间。也可以分为硬实时任务以及软实时任务。硬实时任务要求高实时性;软实时任务则要求比较松。

    实时系统常用于工业控制系统、信息查询系统、多媒体系统、嵌入式系统;

    总结:记忆时可以这么理解:上一代的缺点往往在下一代解决并是下一代的优点

     (三)操作系统的运行环境

        (1)用户态和内核态

    内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。

    用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。

     (2)中断,异常

         中断:是指CPU在程序执行的过程中,当新的情况或事件出现时,CUP暂时停止当前程序的执行,转而处理新情况的过程     

    硬件中断(Hardware Interrupt)
      • 可屏蔽中断(maskable interrupt)。硬件中断的一类,可通过在中断屏蔽寄存器中设定位掩码来关闭。
      • 非可屏蔽中断(non-maskable interrupt,NMI)。硬件中断的一类,无法通过在中断屏蔽寄存器中设定位掩码来关闭。典型例子是时钟中断(一个硬件时钟以恒定频率—如50Hz—发出的中断)。
      • 处理器间中断(interprocessor interrupt)。一种特殊的硬件中断。由处理器发出,被其它处理器接收。仅见于多处理器系统,以便于处理器间通信或同步。
      • 伪中断(spurious interrupt)。一类不希望被产生的硬件中断。发生的原因有很多种,如中断线路上电气信号异常,或是中断请求设备本身有问题。
    软件中断(Software Interrupt)
      • 软件中断。是一条CPU指令,用以自陷一个中断。由于软中断指令通常要运行一个切换CPU至内核态(Kernel Mode/Ring 0)的子例程,它常被用作实现系统调用(System call)

        中断机制在操作系统中的作用

          1.中断可以实时处理许多紧急事件

          2.中断可以实现CPU与外设并行工作,从而提高CPU的效率和系统的吞吐量

          3.中断可以实现多到程序之间的切换

    ‘      4.中断可以使得操作系统为服务的支撑平台,用户通过系统调用完成相应任务,从而简化了操作系统和应用程序的开发设计过程

           

        (3)系统调用

          系统调用:由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。

     (四)操作系统的体系结构

    简单体系结构

     

    计算机操作系统诞生初期,其体系结构就属于简单体系结构,由于当时各式各样影响因素的作用,如硬件性能、平台、软件水平等方面的限制,使得当时的计算机操作系统结构呈现出一种混乱且结构模糊的状态,其操作系统的用户应用程序和其内核程序鱼龙混杂,甚至其运行的地址和空间都是一致的。这种操作系统实际上就是一系列过程和项目的简单组合,使用的模块方法也相对较为粗糙,因此导致其结构宏观上非常模糊。 

     

     

    单体内核结构

     

    随着科学技术的不断发展和进步,硬件及其平台的水平和性能得到了很大程度的提高,其数量和种类也与日俱增,操作系统的复杂性也逐渐加深,其具备的功能以及性能越来越多,在此背景下,单体内核结构的操作系统诞生并得到了应用,例如UNIX操作系统、windows NT/XP等。一般情况下,单体内核结构的操作系统主要具备以下集中功能,分别是文件及内存管理、设备驱动、CPU调度以及网络协议处理等。由于内核的复杂性不断加深,相关的开发设计人员为了实现对其良好的控制,逐渐开始使用了一些较为成熟的模块化方法,并根据其不同的功能将其进行结构化,进而将其划分为诸多的模块,例如文件及内存管理模块、驱动模块、CPU调度模块及网络协议处理等。这些模块所使用的地址和空间与内核使用的完全一致,其以函数调用的方式构建了用于通讯的结构来实现各个模块之间的通讯。在使用模块化的方法以后,只要其通讯接口没有发生明显的变化,即使整个结构中的任何一个模块发生变化也不会对结构中的其他模块造成任何的影响,为其系统的维护和改良扩充提供了便利。虽然单体内核结构的计算机操作系统经过了模块化的处理,但是其中的全部模块仍然是在硬件之上、应用软件之下的操作系统核心中运转和工作。模块与模块之间活动的层次没有任何的差别。

    层次式结构

     

    层次式结构的计算机操作系统是为了减少以往操作系统中各个模块之间由于联系紧密而带来的各种问题而诞生的,其可以做大程度的减少甚至是避免循环调用现象的发生,确保调用有序,为操作系统设计目标的实现奠定了坚实的基础。在层次式结构的计算机操作系统之中,其是由诸多系统分为若干个层次的,其最底层是硬件技术,其他每一个层级均是建立在其下一层级之上的。在设计其计算机操作系统内核时,主要采用与抽象数据类型十分类似的设计方法进行的,在系统中的每一个层级均包含着多种数据和操作,且每一个的数据和操作是其他层不可见的,在每一层当中都配备了用于其他层使用的唯一操作接口,同时每一层发生的访问行为只能针对其下层进行,不能访问其上层的数据和服务,严格遵守了调用规则,在很大程度上避免了其他层次对某一层次的干扰和破坏。对于理想的层次式计算机系统体系结构来说,其之间的联系不仅仅是单向依赖性的,同时各个层级之间也要具备相互的独立性,且只能对低层次的模块和功能进行调用,例如THE系统。但是这种理想的全序层次式计算机操作系统在现实中建成是较为困难的,其无法完全避免模块之间循环调用现象的出现,某个层级之间仍旧存在某种循环关系,这种层次式结构又被叫作半序层次式计算机操作系统,例如SUE操作系统。 

     

     

    微内核结构

     

    微内核计算机操作系统体系结构又可以被叫作客户机结构或者服务器结构,其实际上就是一种将系统中的代码转移到更高层次当中,尽可能地减少操作系统中的东西,仅仅保留一个小体积的内核,一般情况下其使用的主要方法就是通过用户进程来实现操作系统所具备的各项功能,具体来说就是用户进程可以将相关的请求和要求发送到服务器当中,然后由服务器完成相关的操作以后在通过某种渠道反馈到用户进程当中。在微内核结构中,操作系统的内核主要工作就是对客户端和服务器之间的通信进行处理,在系统中包括许多部分,每一个部分均具备某一方面的功能,例如文件服务、进程服务、终端服务等,这样的部分相对较小,相关的管理工作也较为便利。这种机构的服务的运行都是以用户进程的形式呈现的,既不在核心中运行,也不直接地对硬件进行访问,这样一来即使服务器发生错误或受到破坏也不会对系统造成影响,仅仅只是会造成相对应服务器的崩溃。

     

     

    外核结构

     

    外核结构的计算机操作系统本质上就是为了获得更高的性能和灵活性而设计出来的,在系统中,操作系统接口处于硬件层,在内核中提出全部由以往操作系统带来的抽象,并将重点和关键放在了更多硬件资源的复用方面。在操作系统的外核结构中,内核负责的主要工作仅仅为简单的申请操作以及释放和复用硬件资源,其由以往操作系统提供的抽象全部在用户空间当中运行。 

     

    一般情况下,外核结构中的内核主要有三大方面的工作,分别是对资源的所有权进行跟踪、为操作系统的安全提供保护以及撤销对资源的访问行为。在核外,基本上所有的操作系统中的抽象都是以库的形式呈现出来的,而用户在访问硬件资源时也是通过库的调用来完成的。

    习题:

        1.用户程序调用操作系统的功能必须使用()。

        A  调用命令 B  系统调用 C  作业控制 D  控制命令

        2.操作系统的基本类型主要有()。

         A、批处理系统、分时系统及多任务系统 B、实时系统、批处理系统及分时操作系统 C、单用户系统、多用户系统及批处理系统 D、实时系统、分时系统、多用户系统  

        3.多道批处理系统的硬件支持是20世纪60年代初发展起来的() 
        A、 RISC技术 B、通道和中断机构C、集成电路D、高速内存

        4.下面关于操作系统的叙述中正确的是。

         A、批处理作业必须具有作业控制信息。 B、分时系统不一定都具有人机交互功能 C、从响应时间的角度看,实时系统与分时系统差不多 D、由于采用了分时技术,用户可以独占计算机的资源

        5.如果分时操作系统的时间片一定,那么()则响应时间越长。

        A、用户数越少 B、用户数越多C、内存越少 D、内存越多

        6.分时操作系统的主要特征有 【多路性】、【交互性】、【独占性】、【及时性】。   

        7.()允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互使用计算机。

         A 多道批处理 B 单道批处理 C 分时 D 实时 

        8. 系统调用是( )。 

        A用户编写的一程序 B高级语言中的库程序 C操作系统中的一条命令 D操作系统向用户程序提供的接口

    参考资料:https://blog.csdn.net/slx3320612540/article/details/80708178
        https://blog.csdn.net/a617976080/article/details/96710266
  • 相关阅读:
    Oracle数据库死锁和MySQL死锁构造和比较
    shell单引号中输出参数值
    视频流媒体服务器
    使用syncthing进行双机文件同步
    状态(State)模式--设计模式
    中介者(调停者)模式--设计模式
    链表的中间节点
    删除链表中的倒数第N个节点
    Logos讲解--逆向开发
    MonkeyDev安装--逆向开发
  • 原文地址:https://www.cnblogs.com/Truedragon/p/12433431.html
Copyright © 2020-2023  润新知