zoukankan      html  css  js  c++  java
  • 软件评测师:操作系统知识

    操作系统的作用

    image
    作用 :

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

    进程的概念

    进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一 个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成

    进程与程序的区别:
    1、进程是程序的一次执行过程,没有程序就没有进程
    2、程序是完成某个特定功能的一系列程序语句的集合,只要不被破坏,它就永远存在。
    3、程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是

    进程的状态管理:

    image

    • 就绪状态:当一个进程获得了除处理机以外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由l/O操作完成而进入就绪状态时,排入高优先级队列。

    • 运行状态(执行):当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态)通常会自动执行系统的空闲进程。

    • 等待状态(阻塞、睡眠):也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

    • 活跃就绪:是指进程在主存并且可被调度的状态。

    • 静止就绪(挂起就绪):是指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起就绪态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。

    • 活跃阻塞:是指进程已在主存,一旦等待的事件产生便进入活跃就绪状态。

    • 静止阻塞:是指进程对换到辅存时的阻塞状态,一旦等待的事件产生便进入静止就绪状态。

    image

    PV操作:

    P、V操作有三个概念需要理解:临界资源、临界区和信号量。

    临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等。
    临界区:每个进程中访问临界资源的那段代码称为临界区
    有空即进,无空则等;有效等待,让权等待
    信号量:是一种特殊的变量(S)。
    image

    P操作定义:S=S-1,若S≥0,则执行P操作的进程继续执行;否则,若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
    V操作定义:S=S+1,若S>0,则执行V操作的进程继续执行;否则,若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。
    下面我们来看一道例题加深理解:
    image
    先不看P、V,单从生产者和消费者我们不难看出,生产者生产一个产品,并将产品送到缓冲区等待消费者使用,消费者从缓冲区拿走产品并消费产品这么一个流程。

    那么这里有一个问题,假设生产者进程生产一轮送到缓冲区后,消费者进程没有运行,再次执行生产者进程,则缓冲区中的产品则会溢出,反之消费者一直取出产品直至缓冲区为空,同样也会出现问题,PV操作的好处就体现在这里了。

    加入PV操作后,根据流程图公式计算可知,第一轮生产者进程的值为P(S1)为0,P(S2)为1,一个产品被放入缓冲区,当消费者进程没有运行时,生产者进程再次运行后P(S1)为-1时,则符合S<0的判断,并加入进程队列等待,这时就能较好解决产品溢出的问题了。

    PV 操作互斥例:
    image

    进程死锁:

    死锁是指多个进程(线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象(互相挂起等待),若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程

    例:系统有3个进程:A、B、C。这3个进程都需要5个系统资源。如果系统有多少资源,则不可能发生死锁。(13个)
    每个进程所需资源数-1的和+1

    死锁的预发和避免:
    image

    内存管理方式

    分区式存储管理:

    基本思想:将内存划分成若干个连续区域,称为分区。每个分区只装入一个程序,且该程序只能在此分区运行。

    分配办法 单一连续分配 固定分区分配 可变分区分配
    分配类型 静态分配法 静态分配法 动态分配法
    分配特点 不分区,所有用户空间 给某个进程或作业 预先分成大小不等的区域, 区域分完后固定不变 分成大小不等的区域,根据用户要求动态分配

    image

    image

    分页和分段存储

    Q:为什么会产生分页式存储管理?
    连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大空间,但须为之付出很大开销。
    如果允许将一个进程直接分散地装入许多不相邻接的分区中,则无需再进行“紧凑”。
    基于这一思想而产生了离散分配方式。

    如果离散分配的单位是页,则称之为分页存储管理方式
    如果离散分配的单位是段,则称之为分段存储管理方式

    页式存储管理

    将一个进程的逻辑地址空间分成若干各大小相等的片(页面/页),并为各页加以编号,从0开始;
    相应的把内存空间分成与页面相同大小的若干个存储块(物理块/页框),同样为其各块加以编号。

    在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接得物理块中。
    由于进程的最后一页经常装不满一块而形成了不可利用得碎片(页内碎片)

    逻辑地址
    用户程序的划分是由系统自动完成的,对用户是透明的。
    一页的大小一般为 2 的整数次幂, 地址的高位部分为页号, 低位部分为页内地址(页内位移量)

    页表(页面映像表)实现了从页号到物理块号的地址映射。
    大多驻留在内存中。
    系统为每个进程都建立一个页表
    image
    分页式系统地址变换机构(实现逻辑地址到物理地址的转换)
    image

    含有快表的分页式存储管理机构
    image
    对上图的解释:
    CPU 给出有效逻辑地址后, 自动将页号与快表中的所有页号进行比较, 有则直接读出对应的物理块号送物理地址寄存器中, 无则继续按页号检索页表,在页表中读出对应的物理块号送物理地址寄存器中, 并同时修改快表, 使快表中始终保持着最近频繁访问的页信息。
    实际上快表和页表检索是同时进行的, 快表查到则终止检索页表, 没查到则继续检索页表。上述过程全部由硬件实现, 并行性好速度快。
    其中:
    物理块号 b 的地址= 页表始址+页号*页表项长度
    物理地址 P = 物理块号*页的大小+页内地址

    快表的命中率一般为:80%~90%
    页式管理的 优点: 解决了碎片问题、便于管理
    缺点: 不易实现共享、不便于动态连接

    基本思路:

    把物理内存划分为许多固定大小的内存块,称为物理页面;

    把逻辑地址空间也划分为大小相同的块,称为逻辑页面。

    当一个用户程序被装入内存时,不是以整个程序为单位,把它存放在一整块连续的区域,而是以页面为单位来进行分配的。对于一个大小为N的页面程序,需要有N个空闲的物理页面来把它装载。这些物理页面不一定是要连续的。

    在页式存储管理中需要解决三个问题:数据结构、内存分配与回收、地址映射。

    数据结构有两个:页表和物理页面表。

    A.页表:给出了任务逻辑页面号和内存中物理页面号之间的对应关系。

    B.物理页面表:描述内存空间中,各个物理页面的使用情况。

    image

    在页式存储管理中,有效地址除页的大小,取整为页号,取余为页内地址

    例:
    页式存储系统的逻辑地址是由页号和页内地址两部分组成。假定页面的大小为4K,地址变换过程如下图所示,图中逻辑地址用十进制表示。图中有效地址经过变换后,
    十进制物理地址a应为()
    图片名称
    A.33220
    B.8644
    C.4548
    D.2500
    解析:本题考查的是页式存储管理中的地址变换知识。在页式存储管理中,有效地址除页的大小,取整为页号,取余为页内地址。本题页面的大小为4K,有效地址8644(10000111000100)除4096,取整为2,取余为452。我们先查页表得物理块号8,因此a的有效地址为8×4096+452=33220。

    分段存储

    逻辑空间分为若干个段,每个段定义了一组有完整逻辑意义的信息(如主程序Main())
    image
    内存空间为每个段分配一个连续的分区

      段的长度由相应的逻辑信息组的长度决定,因而各段长度不等,引入分段存储管理方式的目的主要是为了满足用户(程序员)在编程和使用上多方面的要求。

      要注重理解,完整的逻辑意义信息,就是说将程序分页时,页的大小是固定的,只根据页面大小大小死生生的将程序切割开;而分段时比较灵活,只有一段程序有了完整的意义才将这一段切割开。(例如将一个人每隔50厘米切割一段,即为分页;而将一个人分割为头部、身体、腿部(有完整逻辑意义)三段,即为分段)
    image

    优点:多道程序共享内存,各段程序修改互不影响。
    缺点:内存利用率低,内存碎片浪费大

    段页式存储

    原理:用户程序先分段,每个段内部再分页(内部原理同基本的分页、分段相同)

    图片名称 进行地址变换时,首先利用段号S,将它与段表长TL进行比较。 若S磁盘结构

    左图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可 以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇 区(图中绿色部分)。
    右图展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面 都是可读写的,图中蓝色部分叫柱面(cylinder)。

    图片名称 图片名称

    磁盘调度算法

    先来先服务算法 FCFS

    算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。该算法的优点是具有公平性。如果只有少量进程需要访问,且大部分请求 都是访问簇聚的文件扇区,则有望达到较好的性能;但如果有大量进程竞争使用磁盘,那么这种算法在性能上往往接近于随机调度。所以,实际磁盘调度 中考虑一些更为复杂的调度算法。

    算法思想:按访问请求到达的先后次序服务。
    优点:简单,公平。
    缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。

    最短寻找时间优先算法 SSTF

    算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。当然,总是选择最小寻找时间并不能保证平均寻找时间最小, 但是能提供比FCFS算法更好的性能。这种算法会产生“饥饿”现象。

    算法思想:优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先。
    优点:改善了磁盘平均服务时间。
    缺点:造成某些访问请求长期等待得不到服务。

    扫描算法(又称电梯算法) SCAN

    算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。由于磁头移动规律与电梯运行相似,故又称为电梯调度算法。 SCAN算法对最近扫描过的区域不公平,因此,它在访问局部性方面不如FCFS算法和SSTF算法好。

    循环扫描算法

    在扫描算法的基础上规定磁头单向移动来提供服务,回返时直接快速移动至起始端而不服务任何请求。由于SCAN算法偏向于处理那些接近最里或最外的磁 道的访问请求,所以使用改进型的C-SCAN算法来避免这个问题。

    算法 优点 缺点
    先来先服务算法 公平、简单 平均寻道距离大,仅应用在磁盘 I/O较少的场合
    最短寻找时间优先算法 性能比“先来先服务”好 不能保证平均寻道时间最短,可 能出现“饥饿”现象
    扫描算法 寻道性能较好,可避免“饥饿”现象 不利于远离磁头一端的访问请求
    循环扫描算法 消除了对两端磁道请求的不公平 --

    磁盘读取时间

    读取磁盘数据的时间应包括以下三个部分

    • (一)寻道时间
    • (二)寻找块(扇区)的时间,即旋转延迟时间
    • (三)传输时间

    读取磁盘数据时先动磁头再旋转磁盘再读取

    例:某磁盘磁头从一个磁道移至另一个磁道需要10ms。文件在磁盘上非连续存放, 逻辑上相邻数据块的平均移动距离为10个磁道,每块的旋转延迟时间及传输时 间分别为100ms和2ms,则读取一个100块的文件需要(20200)ms的时间。

    文件组织结构

    逻辑结构

    文件的逻辑结构是用户可见结构。逻辑文件从结构上分成二种形式:
    一、无结构的流式文件,是指对文件内信息不再划分单位,它是依次的一串字符流构 成的文件。
    二、一种是有结构的记录式文件,是用户把文件内的信息按逻辑上独立的含义划分信 息单位,每个单位称为一个逻辑记录(简称记录)。

    物理结构

    文件的物理结构又称为文件的存储结构,它是指文件在外存上的存储组织形式,与存储 介质的存储性能有关。常用的物理结构有三种:
    一、连续文件结构,它是最简单的物理文件结构,它把一个在逻辑上连续的文件信息依 次存放到物理块中。
    二、串联文件结构,串联文件结构用离散分配,即非连续的物理块来存放文件信息,这 些非连续的物理块之间没有顺序关系,其中每一个物理块设有一个指针,指向其后续物 理块,从而使得存放同一文件的物理块链接成一个串联队列。
    三、索引文件结构,索引文件要求系统为每个文件建立一张索引表,表中每一个栏目指 出文件信息所在的逻辑块号和与之对应的物理块号。
    图片名称

    树形目录结构

    图片名称

    绝对路径

    绝对路径是指目录下的绝对位置,直接到达目标位置, 通常是从盘符开始的路径

    相对路径

    相对路径就是指由这个文件所在的路径引起的跟其它 文件(或文件夹)的路径关系。

    中断的概念

    中断是指计算机运行过程中,系统内发生任何非寻常或非预期的急需 处理事件,使得CPU暂时中断当前正在执行的程序并转入处理相应事件 的处理程序,处理完毕后又返回原被中断处继续执行的过程。

    根据中断源产生的条件,可将中断分为外中断和内中断:
    外中断:来自处理机和内存外部的中断,包括I/O设备发出的I/O中断、外部信 号中断,各种定时器引起的时钟中断,以及程序调试中设置的断点等引起的调 试中断等。外中断狭义上称为中断。
    内中断:处理机和内存内部产生的中断,可称为陷入或异常,包括程序运算引 起的各种错误,如算术操作溢出、数据格式非法、除数为零等。

    虚设备与SPOOLING技术

    图片名称

    SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是 以联机的方式得到脱机的效果。低速设备经通道和外设在主机内存的缓冲存储器与高速设备相联,该高速设 备通常是辅存。为了存放从低速设备上输入的信息,或者存放将要输出到低速设备上的信息(来自内存), 在辅存分别开辟一固定区域,叫“输出井”(对输出),或者“输入井”(对输入)。简单来说就是在内存 中形成缓冲区,在高级设备形成输出井和输入井,传递的时候,从低速设备传入缓冲区,再传到高速设备的 输入井,再从高速设备的输出井,传到缓冲区,再传到低速设备。
    例:打印机的缓冲处理

    如果您觉得本篇文章还不错,欢迎点赞,转发分享(转发请注明出处),感谢~~
  • 相关阅读:
    php数组gbk和utf8的相互转化
    【原创】SSRS (SQL Serve Reporting Service) 访问权限的问题
    【原创】软件开发项目管理总结
    【原创】Team Foundation Server 域环境迁移
    【转载】 C#中数组、ArrayList和List三者的区别
    【转载】NuGet镜像上线试运行
    【原创】 关于全局静态变量初始化
    【转载】Fiddler进行模拟Post提交json数据,总为null解决方式
    【转载】解决Windows 10 局域网内共享的问题
    【原创】 查看端口号被占用
  • 原文地址:https://www.cnblogs.com/feng0815/p/15085795.html
Copyright © 2011-2022 走看看