操作系统的类型与结构
根据使用环境对作业的处理方式,操作系统可以分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。
操作系统的结构可以分为无序结构、层次结构、面向对象结构、对称多处理结构和微内核结构。
- 无需结构以大型表格和队列为中心,操作系统的各个部分程序围绕着表哥运行,整个系统就是一个程序。
- 层次结构是把一个大型复杂的操作系统分解成若干个单向依赖的程次,由多层的正确性保证操作系统的可靠性。
- 面向对象结构是基于面向对象程序设计的编程理念,采用了各种不同的对象技术。
- 对称多处理结构。如果一个操作系统在系统中的所有处理机运行且共享同一内存这样的系统就是一个对称多处理系统。
- 微内核结构是把系统的公共部分抽象出来,形成一个底层的核心,提供最基本的服务,其他功能都以服务的形式建立在微内核之上。
现代操作系统大多拥有两种工作状态:核心态和用户态。我们使用的一般程序工作在用户态,而内核模块和基本的操作系统核心工作在核心态。
处理器管理
进程是一个程序关于某个数据集的一次运行。进程是程序的一次运行活动,是一个动态的概念,而程序是静态的概念,是指令的集合。进程具有动态性和并发性,程序是进程运行所对应的运行代码,一个进程对应一个程序,一个程序可以同时对应多个进程。在操作系统中进程是进行系统资源分配、调度和管理的最小单位(注意,现代操作系统中还引入了线程这一概念,它是处理器分配资源的最小单位)。从静态观点看,进程由程序、数据和进程控制块(PCB)组成;从动态的观点看,进程是计算机状态的一个有序集合。
PCB是进程存在的唯一标识,PCB描述了进程的基本情况。其中的内容可以分成为调度信息和执行信息两大部分。
一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻画,为了便于管理进程,把进程划分为几种状态,分别由三态模型和五态模型。
信号量和PV操作,是为了有效的处理进程之间经常会存在互斥和同步两种关系。
死锁是指多个进程之间会想等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样,造成了循环等待的一种现象。发生死锁的必要条件有:互斥条件、请求保持条件、不可剥夺条件、环路条件。
银行家算法就是为了解决死锁,其在分配资源之前先看清楚资源分配之后是否会导致系统死锁。如果会死锁,则不分配,否则就分配。
解决死锁的策略主要有:死锁预防、死锁避免、死锁检测、死锁解除。
文件管理
文件的逻辑组织是为了方便用户的使用,逻辑结构是用户可见的结构。常用的记录式结构有连续结构、多重结构、转制结构和顺序结构。
文件的物理结构是指文件在存储设备上的存储方法,常用的文件物理结构有连续文件、串联文件和索引文件。
由于文件存储设备式分成许多大小相同的物理块,并以块为单位交换信息,因此,文件存储设别的管理,实质上是对空闲块的组织和管理问题,它包括空闲块的组织、空闲块的分配与空闲块的回收等问题。空闲表法、空闲链法和位图法。
存储管理
在虚拟存储器的管理中,涉及载入(调入)、放置(放入分区)和置换等问题。
- 调入策略:即合适将以页或一段从外存中调入内存,通常有两种策略,一种是请求调入法,即需要使用时才调入;另一种是先行调入法,即将预计要使用的页/段先行调入内存。
- 放置策略:也就是调入喉,放在内存的什么位置,这与内存管理基本是一致的。
- 置换策略:由于实际内存是小于虚拟内存的,因此可能会发生内存已满,但需要使用的页不存在内存这一种情况(称缺页中断)。这时就需要进行置换,即将一些内存中的页淘汰到外存,腾出空间给要使用的页,这个过程也称为交换。
常见的置换算法有:最有算法、随机算法、先进先出和最近最少使用算法。
存储管理策略的基础是 局部性原理,即进程往往会不均匀地高度局部变化地访问内存。局部性分为时间局部性和空间局部性。时间局部性是指最近访问的存储位置,很可能在不久的将来还要访问;空间局部性是指存储访问又成组的倾向:当访问某个位置后,很可能也要访问其附近的位置。
作业管理
作业调度主要完成从后备状态到执行状态的转变,以及执行状态到完成状态的转变。作业调度算法有:先来先服务、短作业优先、响应比高者优先和优先级调度。
设备管理
在计算机系统中,除了处理器和内存之外,其他大部分硬件设备称为外部设备。他们主要提供的功能有:提供和进程管理系统的接口;进行设备分配;实现设备和设备、设备和CPU等之间的并行操作;进行缓冲区管理。
在计算机中,输入输出系统可以有 5 种不同的工作方式,分别是程序控制方式、程序中断方式、DMA(Direct Memory Access,直接内存存取)工作方式、通道方式、输入/输出处理机。
磁盘调度算法,访问磁盘的是时间由3部分构成,它们是寻道(查找数据所在的磁道)时间,等待(旋转等待扇区)时间和数据传输时间,其中寻道时间(查找时间)是决定因素。
- FCFS 算法,也称为FIFO算法。
- SSTF算法,最短寻道时间优先。
- SCAN算法,电梯算法。
- N-SCAN算法,N步SCAN算法。
- C-SCAN算法,循环扫描算法。