Chapter One操作系统概述

 

操作系统

概念:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理组织和调度计算机的工作和资源分配,是最基本的系统软件

 

特征∶并发、共享(两个最基本的特征)、虚拟、异步。

并发∶指同一时间间隔内发生,区别于并行。微观上分时地交替执行。

功能∶是计算机系统资源(处理机、存储器、文件、设备)的管理者

 

用户与计算机硬件系统之间的接口∶

命令接口(允许用户直接使用)(1)联机(交互式)命令接口(适用于分时or实时)(2)脱机(批处理)命令接口

程序接口(=系统调用命令

GUI(图形接口调用系统命令)

注∶ 在多道程序环境下,处理机的分配和运行都以进程(或线程)为单位。

系统调用是由操作系统提供给用户的,它只能通过用户程序间接使用。

 

操作系统的发展∶批处理—>分时一>实时—网络和分布式

批处理缺点∶没有交互能力

单道批处理一>顺序性(CPU大量时间在空闲等待I/O)

多道批处理(失去封闭性)一>制约性、间断性、共享性

特点∶ 多道、宏观上并行,微观上串行。

分时系统∶ (以时间片为单位)允许多个用户以交互的方式使用计算机

特点∶同时性、交互性、独立性、及时性

分时系统能较快、及时接收并处理命令,快速响应用户

分时系统中,时间片一定时,用户数越多,响应时间越长。

实时系统∶在某个时间限制内完成某些紧急任务而不需时间片排队

特点∶ 及时性、可靠性

④网络(网络资源共享)和分布式∶ 区别是在分布式中,若干计算机相互协同完成同一任务

 

 

Chapter Two进程管理

进程概念∶

进程动态是资源分配的一个独立单位。程序∶ 静态

进程的特征∶ 动态性(最基本)、并发性(重要特征)、独立性、异步性

进程实体由程序段、数据段、PCB三部分组成

注∶程序段(多个进程可运行同一程序)、 PCB是进程存在的唯一标志。

PCB描述进程的基本情况和活动过程,可以控制和管理进程

主要包括∶进程描述信息(ID)、进程控制(优先级)和管理信息、资源分配和处理机相关。

二进制代码和常量放在正文段;动态分配的存储区在数据堆段;临时用的变量在数据栈段。

进程的三种基本状态∶就绪、阻塞、运行

 

注∶ 在可剥夺OS中,当有更高优先级的进程就绪时,调度程序将正在执行的进程一>就绪态,让更高优先级的执行。

就绪态∶ 进程已处于准备运行的状态(只缺CPU了!

 

阻塞(等待资源)∶请求资源失败、等待某操作的完成、数据未到达、无事可做

唤醒(资源到达)∶I/O操作已完成or数据已到,调用唤醒原语

 

引起创建进程的操作∶终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求

注∶ 用户进程被创建后,随着运行的正常或不正常结束而撤销。(进程是有一定生命周期的!

进程的终止∶ ①异常结束∶存储区越界、保护错、非法指令、特权指令错、I/O故障②正常结束∶ 任务已完成 ③外界干预(人为、OS干预、父进程的请求or终止)

 

进程控制

对系统中所有的进程实施有效的管理。

原语

处于最底层;不可分割的指令序列;运行时间短,调用频繁

操作是一种低级的进程通信语言,由两个不可中断的过程组成,并非系统调用。

 

系统调用(运行在核心态)

用户程序凡是与资源有关的操作(存储分配、I/O、管理文件)都必须通过系统调用。

用户程序(用户自编or系统外层应用程序)工作在用户态;内核程序工作在核心态

 

 

 

 

进程的通信

一个进程不能直接访问另一个进程的地址空间

①共享存储(互斥访问)∶

低级方式∶ 基于数据结构的共享;

高级方式∶ 基于存储区

消息传递

直接通信方式∶ 接收进程从消息队列中取得消息;

间接通信方式∶将消息挂到某个中间实体(邮箱

③管道通信∶利用一种特殊的pipe文件连接两个进程。

管道只能采用半双工通信,某一时间段内只能实现单向传输。如果要实现双向同时通信,则需设置两个管道。

 

线程

线程的引入∶ 减小程序的时空开销,提高程序并发执行的程度,提高系统效率线程是程序执行的最小单元并不拥有任何系统资源(进程才有),是独立调度的基本单位。

同一进程中,线程的切换不会引起进程的切换;切换到另一进程中的线程才会切换。

同一进程或者不同进程内的线程都可以并发执行。

用户级线程∶ 所有工作都由应用程序完成,无需内核干涉

内核支持线程

 

多线程模型∶多对一模型∶缺点一>一个线程阻塞会导致整个进程都被阻塞

注∶ 线程包含CPU现场,可以独立执行程序。只有内核级线程才是处理机分配的单位!

 

CPU调度

作业调度(高级DD)内存与辅存(外存)之间的DD;对于每个进程只调入调出一次。调入建立PCB,调出才撤销PCB。

内存DD(中级DD)∶将暂时不运行的进程调至外存等待。引入中级DD为了提高内存利用率和吞吐量(调到外存等待的进程状态为挂起态)

进程DD(低级DD)内存->CPU,是OS中最基本的一种DD;一般OS中必须配置,使用频率很高

公式周转时间平均周转时间等待时间平均等待时间系统吞吐量

周转时间=等待时间+服务时间(执行时间)

周转时间=完成时间 (时刻) - 提交时间(时刻)

 

 

调度算法∶

FCFS、SJF、优先级DD、高响应比优先、时间片轮转、多级反馈队列DD。 

FCFS∶属于不可剥夺算法!

特点∶算法简单;有利于CPU繁忙型作业,不利于I/O繁忙型作业

SJF∶ 会产生饥饿现象,是调度策略问题。(默认"非抢占",也有抢占式)

特点∶ 平均等待时间、平均周转时间最少!

优先级DD

 ①静态优先级∶优先级在创建进程时确定,整个运行期间不变

②动态优先级∶ 随着进程执行时间增加,其优先权下降

高响应比优先Rp=(waitT+ServeT)/ServeT

时间片轮转∶ 主要适用于分时系统;绝对可抢占;时间片过大时,相当于 FCFS

 

进程同步

临界资源(独占资源)一次仅允许一个进程访问使用的资源

(如∶打印机、共享变量、共享缓冲区、公用队列)

共享资源∶ 一次可供多个进程使用 (如∶磁盘存储介质)

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

同步机制遵循的原则∶ ①空闲让进②忙则等待③有限等待④让权等待

④∶ 当进程不能进入临界区时,应释放处理器

 

死锁

定义∶ 多个进程因竞争资源而造成的互相等待

原因∶①竞争系统资源(不可剥夺资源);独占资源分配不当

②进程推进顺序非法;

死锁的必要条件互斥;不剥夺;请求和保持;循环等待(任一条件不满足时则不发生死锁)

不剥夺∶未使用完之前不能被其他进程强行夺走,只能是主动释放!

请求和保持∶ 保持资源时又请求被其他进程占有的资源,对已获得的资源保持不放。

死锁的处理策略

①死锁预防(通过设立限制条件,破坏四个必要条件,但互斥无法破坏,超级少见!) SPOOLing技术∶ 把互斥资源改造为允许共享使用

包括∶采用静态分配法,一次申请完全部资源;采用顺序资源分配法,按编号…

②死锁避免∶在资源动态分配过程中,用一些算法防止系统进入不安全状态。包括∶ 银行家算法(Max、Allocation、Need、Available)

③死锁检测∶ 资源分配图(当不可完全化简时为死锁状态);死锁定理

④死锁解除∶ ①资源剥夺法(被动)②撤销进程 ③进程回退法(主动释放)

注∶出现环路不一定都会导致死锁。

饥饿不一定是死锁,但是至少一个进程被无限期推迟。

 

 

Chapter Three 内存管理

程序执行过程∶编译、链接、装入

链接(链接时形成逻辑地址)

①静态链接∶将各目标模块及库函数连城一个完整可执行程序,以后不再拆开

②装入时动态链接∶边装入,边链接(早期多道批处理)

③运行时动态链接∶需要用到时才链接(现代操作系统)

装入(将逻辑地址转换为物理地址)

①绝对装入∶编译时产生绝对地址。程序中逻辑地址与实际内存地址完全相同;只适用于单道程序环境

②可重定位装入(静态重定位)∶地址变换通常在装入时一次完成

特点∶ 一个作业进入内存,必须分配其要求的全部内存空间。在运行期间就不能再移动位置。没有足够内存时,不能装入作业!

装入时把逻辑地址变换为物理地址,装入后不能改变。

③动态运行时装入动态重定位∶不立即转换地址,真正要执行时才进行(需要重定位寄存器支持)

特点∶动态重定位在作业执行过程中进行

程序运行前只装入部分代码即可运行。

运行期间动态申请分配内存,便于程序段的共享。

地址重定位(地址映射)

逻辑地址(又称相对/虚地址)一>物理地址(内存、绝对、实地址)

注∶ 物理地址可以直接寻址;不能直接用逻辑地址在内存中读取信息!不同进程可以有相同的逻辑地址,但是会映射倒不同的主存位置上。

 

交换∶把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到外存(对应进程的中级调度),把内存空间腾出来。

 

连续分配——一个用户程序分配一个连续的内存空间

①单一连续分配∶ 内存中只有一道程序;实现简单;

缺点∶只适用于单用户、单任务的OS中;存储器利用率低

②固定分区分配∶ 最简单的一种多道程序存储管理方式,分区大小固定可相等也可不等分区的大小由系统决定,有内部碎片

③动态分区分配∶在装入时,根据进程的大小动态建立。产生外部碎片

注∶

内部碎片∶分区大小固定,程序小于固定分区时也占用一个分区,内部浪费

外部碎片∶ 在所有分区外的存储空间会变成越来越多的碎片(可以用拼接、紧凑技术解决,需要动态重定位寄存器支持)

 

分配算法∶

①首次适应∶ 空闲分区以地址递增的次序链接,找大小满足要求的第一个分区

②最佳适应∶XX按容量递增XX

③最坏适应∶XX按容量递减XX

④循环首次适应算法:分配内存时,从上次查找结束的位置开始继续查找。

注∶首次适应(First fit)是最简单,最好,最快的。最佳适应(Best fit)性能通常很差,产生最多外部碎片。

 

非连续分配 (离散)—一个程序分散地装入不相邻的内存分区

分页存储∶ 有内部碎片;地址变换由硬件自动完成

基地址变换机构 ①有快表(高速缓冲寄存器)TLB②无快表

页表∶逻辑地址转换成物理地址,由页表项组成。

页表项∶页号P+物理内存中的块号

逻辑地址∶ 页号P+页内偏移

页表长度∶指的是这个页表中总共有几个页表项,即总共几个页;

页表项长度∶每个页表项占多大的存储空间;

页面大小∶ 一个页面占多大存储空间。

物理地址=物理内存中的块号+页内偏移

注∶ OS对内存采用页式存储管理时,所划分的页面大小必须相同

页表全部放在内存中,则存取一个数据或一条指令至少要两次访问内存

 

分段存储

 

虚拟内存管理—>/逻辑上扩充内存

基于局部性原理(时间局部性、空间局部性)。(不必装入全部程序,基于非连续分配技术)

装入时,只需装一部分,其余留在外存就可以启动;执行时,当访问的信息不在内存,则用 OS将其调入内存,将暂时不用的换出至外存(内<一>外)

虚拟存储器三大特征 ∶ 多次性、对换性、虚拟性

 

请求分页管理方式∶虚拟存储器的实现,目前最常用

组成∶ ①页表机制 ②地址变换机构

③缺页中断机构∶页面不在内存时,产生一个缺页中断(属于内中断),请求OS将所缺页调入(一条指令在执行期间可产生多次缺页中断

注∶ 页式虚拟存储管理的主要特点∶不要求将作业同时全部装入到主存的连续区域

 

动∶ 

刚换出的页面马上又要换入内存,刚换入的页面马上又要换出内存

频繁换入、换出使系统效率低下

原因∶淘汰算法不合理、物理页面太少

解决方案∶增加内存容量;撤销部分进程;换淘汰算法;减少多道程序的度数

注∶FIFO最易发生抖动,但所有页面调度策略都不可能完全避免抖动。

 

 

Chapter Four I/O管理

I/0设备分类

(按)传输速率∶低速(键盘鼠标)、中(打印机)、高(磁盘光盘)

(按)信息交换单位∶ 块设备、字符设备

块设备∶以数据块为单位存取(磁盘)传输速率高

字符设备∶ 以字符为单位传输(交互式终端机、打印机)传输速率低;在I/O时常采用中断驱动方式

 

I/O控制方式

①程序直接控制方式

②中断驱动方式

③DMA方式

④通道控制方式∶

工作过程∶向通道发一条I/O指令,给出通道程序的首地址和要访问的I/O设备,通道接到指令后,执行通道程序便可完成CPU指定的任务,数据传送结束向CPU发中断请求。 I/O通道∶专门负责I/O的处理机,实现CPU、通道、I/O三者并行工作

注∶ 通道用于实现内存与外设之间的信息传输。通道是一种特殊的处理器,属于硬件技术。

 

I/O层次结构(从上到下) ∶

①用户层

与设备无关的软件层设备独立性软件):

设备驱动程序(与硬件直接相关)∶ 负责执行OS发出的I/O命令,因设备的不同而不同

④中断处理程序

⑤硬件

注∶ 设备独立性∶用户编程时使用的设备与实际使用的设备无关

在应用程序中,使用逻辑设备名来请求使用某类设备;而在系统实际执行时,必须将逻辑设备名映射成物理设备名使用

 

系统中每一台设备按某种原则统一进行编号

设备控制器要提供∶ 控制寄存器、状态寄存器和控制命令

设备控制器中用于实现对设备控制功能的是∶ I/O控制逻辑

 

设备分配时应考虑的因素∶

①设备的固有属性 (独占设备、共享设备、虚拟设备)

共享设备∶ 可随机访问。分配共享设备不会引起死锁(独占设备才可能)。

虚拟设备∶把一个物理设备变换成多个对应的逻辑设备

②设备分配算法

③设备分配中的安全性∶ 应防止发生进程死锁。

安全分配方式∶设备分配安全,但CPU和设备并行工作

不安全分配方式∶ 进程可同时操作多个设备,推进迅速; 但有可能产生死锁

逻辑设备表的设置∶

①整个系统只设置一张LUT∶ 不允许有相同逻辑设备名;主要适用于单用户系统

②为每个用户设置一张LUT

一个通道可控制多个设备控制器,每个控制器可以控制多个设备。一个设备分配成功,必须这三个都可用

 

SPOOLing技术(假脱机技术)—>用软件控制实质上是用户层软件

脱机技术∶为了缓和CPU的高速性与I/O设备低速之间的矛盾

SPOOLing系统的主要特点∶提高I/O速度;将独占设备改造为"共享"设备;实现了虚拟设备功能

SPOOLing系统的组成:(1) 输入井和输出井。
(2) 输入缓冲区和输出缓冲区。
(3) 输入进程和输出进程。
(4) 井管理程序。

 

 

 

引入缓冲区的主要目的∶

①缓和CPU与I/O间速度不匹配的矛盾(如果I/O所花时间比CPU处理时间短得多,则没必要设置缓冲区)

②减少对CPU的中断频率

③解决基本数据单元大小不匹配的问题

④提高CPU和I/O设备之间的并行性

缓冲区特点∶在缓冲区非空时,不能冲入数据,只能传出;当缓冲区为空时,可以冲入数据,但是要缓冲区充满后,才能传出。

单缓冲∶设备和处理机之间设置一个缓冲区。处理每块数据用时∶ Max(C,T)+M

双缓冲

缓冲池∶ 由多个系统公用的缓冲区组成。

四种工作缓冲区∶收容输入、提取输入、收容输出、提取输出

三种缓冲队列空闲、输入、输出

 

 

Chapter Five 文件管理

从系统角度看,文件系统负责对文件的存储空间进行组织、分配,负责文件的存储并对存入文件进行保护、检索。

 

文件的逻辑结构∶是从用户观点出发看到的文件组织形式

文件逻辑上都可以看作连续的,但在物理设备上并不完全连续。文件的物理结构从实现出发。

无结构文件(流式文件)∶ txt

有结构文件(记录式文件)∶①顺序文件∶批量操作效率高;对单个(增删改查)较困难②索引文件∶成百上千倍提高访问速度 ③索引顺序文件

注∶ 索引表本身是定长记录的顺序文件

 

文件控制块(FCB)∶存放控制文件所需的各种信息的数据结构,实现"按名存取"。一个 FCB就是一个文件目录项,即本身就也被看成一个文件

 

目录结构—>目录管理要实现"按名存取";

①单级目录结构∶

在整个文件系统中只建立一张目录表每个文件占一个目录项

特点∶ 不便于文件共享;按名存取; 文件不允许重名

②两级目录结构∶ 将文件目录分成∶ 主文件目录和用户文件目录

特点∶解决文件重名问题;

③多级目录结构(树型)∶ 方便分类,结构清晰;但增加了磁盘访问次数,影响查询速度;不便于实现文件的共享

绝对路径∶ 从根目录出发的路径。

相对路径∶进程对各文件的访问都是相对于当前目录进行的。当用户要访问某个文件时,使用相对路径标识文件。

 

文件的物理结构文件如何存放在外存磁盘上

文件的分配方式∶

连续分配∶ 要求每个文件在磁盘上占有一组连续的块

特点∶ 支持顺序访问和直接访问;实现简单,存取速度快;文件长度不宜动态增加

链接分配∶采用离散分配的方式

显式∶ 把用于链接文件各物理块的指针从块末尾提出,显式地放入内存的一张链表(文件分配表FAT一>该表在整个磁盘仅设—张)中。

索引分配∶索引块应尽可能小(索引表->一个文件分配一张,要占一定空间)

 

文件的存储空间管理∶实际上是对空闲块的组织和管理

①空闲表法 ②空闲链表法③位示图法(要推算出盘块号与字号/位号相互转换) ④成组链接法

 

磁盘

扇区∶是磁盘可寻址的最小存储单位

一次磁盘读写操作时间由寻道时间、延迟时间和传输时间决定。

但实际上存取时间与磁盘调度算法密切相关。调度算法直接决定了寻道时间。 DD算法∶ ①FCFS ②SSTF∶ 会产生"饥饿"③SCAN(电梯算法)④循环扫描

注∶磁盘是共享设备,但在每一时刻,至多只能由一个作业启动它

 

你可能感兴趣的:(他山之石,Random-杂七杂八)