1.1 操做系统的目标和做用程序员
操做系统是一组控制和管理计算机软硬件资源,合理对各种做业进行调度,以及方便用户使用的程序的集合。编程
1. 操做系统的目标网络
有效性、方便性、可扩充性、开放性(前两个最重要,开放性是指遵循世界标准规范)数据结构
2. 操做系统的做用并发
(1) OS做为用户和计算机硬件系统之间的接口异步
用户可经过三种方式使用计算机:命令方式、系统调用方式、图形窗口方式socket
(2) OS做为计算机系统资源的管理者分布式
(3) OS实现了对计算机资源的抽象spa
3. 推进计算机发展的主要动力操作系统
(1) 不断提升计算机资源的利用率
(2) 方便用户
(3) 器件的不断更新换代
(4) 计算机体系结构的不断发展
(计算机体系结构是那些可以被程序员所见到的计算机的属性,及概念性的结构与功能。站在不一样层次上编程的程序员看到的计算机属性也是不一样的;计算机组成原理是如何实现计算机体系结构所体现的属性,它包含了许多对程序员是透明的硬件环节)
1.2 操做系统的发展过程
1. 无操做系统的计算机系统(第一代计算机:真空管)
(1) 人工操做方式(纸带->纸带输入机):用户独占全机,资源利用率低;CPU等待人工操做,CPU利用不充分。
(2) 脱机输入\输出方式(纸带->磁带->内存):减小CPU的空闲时间;提升I/O速度
2. 单道批处理系统 Simple Batch Processing System(第二代计算机:晶体管)
把一批做业以脱机的方式输入到磁带上,以监督程序控制做业的连续处理,内存中始终保持一道做业,所以具备自动性、顺序性、单道性的特征。
3. 多道批处理系统 Multiprogrammed Batch Processing System(第三代:小规模集成电路)
(1)多道程序设计的优势:提升CPU、I/O设备、内存的利用率,增长系统吞吐量
(2)多道批处理系统优缺点:资源利用率高、系统吞吐量大、平均周转周期长、无交互能力
(3)多道批处理系统特色:用户脱机使用计算机、成批处理、多道程序运行(宏观上并行、微观上串行)
(4)存在的问题:处理机管理、内存管理、I/O设备管理、文件管理、做业管理
4. 分时系统 Time Sharing System
一台主机上链接了多个带有显示器和键盘的终端,同时容许多个用户经过本身的终端,以交互方式使用计算机,共享计算机中的资源,具备多路性、独立性、及时性、交互性特征。
第一台分时操做系统CTSS(Compatible Time Sharing System)由麻省理工学院研发。
分类:(1)简单分时操做系统(2)具备“前台“和”后台“的操做系统(3)多道分时操做系统
特征:多路性(同时性)、交互性、独占性、及时性
5. 实时系统 Real Time System
(1) 分类:实时控制系统、实时信息处理系统
(2) 实时任务:
按任务执行是否呈现周期性来分:周期性实时任务、非周期性实时任务
按对截止时间的要求来分:硬实时任务(某个动做必须在规定时间内发生)、软实时任务(容许偶尔违反时间规定,且不会引发永久性损害)
(3) 特征:多路性、独立性、及时性、交互性、可靠性
6. 微机操做系统
(1) 单用户单任务操做系统:CP/M(8位机)、MS/DOS(Disk Operating System)(16位机)
(2) 单用户多任务操做系统:Windows
(3) 多用户任务操做系统:UNIX OS(变体:Solaris OS 和 Linux OS)
1.3 操做系统的分类
1. 基本操做系统:批处理操做系统、分时操做系统、实时操做系统
2. 其它操做系统
(1) 嵌入式操做系统
(2) 集群系统 Clustered System
(3) 网络操做系统
(4) 分布式操做系统:多个分散的处理单元经互联网络链接而成的系统,其中每一个处理单元既有高度自治性有相互协同,能在系统范围内实现资源管理、动态分配任务、并能并行的处理分布式程序;它具备统一性、共享性、透明性、自治性、分布性、并行性的特征。
1.4 操做系统的基本特性
1. 并发性(Concurrence)
(1) 并行与并发:
并行:两个或多个事件在同一时刻发生
并发:两个或多个事件在同一时间间隔内发生
(2) 在操做系统中,引入进程的目的是为了使程序能并发执行。
进程是在系统中能独立运行并做为资源分配的基本单位。多个进程间能够并发执行和交换信息。
(3) 在引入线程的OS中,以进程做为分配资源的最小单位,而把线程做为独立运行和调度的最小单位。
2. 共享性(Sharing)
资源共享的方式:互斥共享方式、同时访问方式(进程交替访问)
3. 虚拟(Virtual)
(1) 时分复用技术:虚拟处理机技术(多道程序设计)、虚拟设备技术
(2) 空分复用技术(其实是频分复用技术):虚拟磁盘技术、虚拟存储器技术
4. 异步性(Asynchronism)
并发性和共享性是操做系统两个最基本的特征。
1.5 操做系统的主要功能
1. 操做系统做为计算机系统资源的管理者
(1)处理机管理
(1) 进程控制:为做业建立进程,撤销已结束进程,以及控制进程在运行过程当中的状态转换。
(2) 进程同步:进程互斥方式(加锁)、进程同步(信号量机制)
(3) 进程通讯
(4) 调度:做业调度(选择做业,分配资源,使其进入就绪队列)、进程调度(分配处理机)
(2)存储器管理
(1) 内存分配:内存分配数据结构、内存分配功能、内存回收功能
(2) 内存保护:每道程序都必须在本身的内存区中运行。
(3) 地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
(4) 内存扩充:借助虚拟存储技术,逻辑扩充内存容量,所以需具有请求调入功能、置换功能
(3)设备管理
(1) 缓冲管理:单缓冲机制、双缓冲机制、公共缓冲池机制
(2) 设备分配
(3) 设备处理:实现CPU和设备控制器之间的通讯
(4)文件管理
(1) 文件存储空间的管理:一般采用离散分配方式,以盘块为基本分配单位,盘块大小一般为1-8KB
(2) 目录管理:为每一个文件创建目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取;文件共享功能;目录查询功能。
(3) 文件的读/写管理和保护
2. 操做系统与用户之间的接口
(1) 用户接口:提供给用户使用的接口
联机用户接口(交互式命令接口,适用于分时或实时系统的接口)、脱机用户接口(批处理用户接口,适用于批处理系统)、图形用户接口
(2) 程序接口:是提供给程序员编程时使用的接口,由一组系统调用(广义指令)命令组成
1.6 操做系统的运行环境
1. 操做系统的运行机制
大多数操做系统的内核应该包含四个方面的内容:
(1) 时钟管理(2)中断机制(3)原语(4)系统控制的数据结构及处理
核心态与用户态(CPU的执行状态)
(1)核心态(管态、系统态):操做系统管理程序执行时机器所处的状态
(2)用户态(目态):用户程序执行时机器所处的状态
核心态命令实际上包括系统调用类指令和一些针对时钟、中断和原语的操做指令。
用户态程序不能直接调用核心态子程序,而是经过执行访问核心态的命令,引发中断,由终端系统转入操做系统内的相应程序(硬件实现,在用户态下,执行访管指令将用户态转为核心态)
特权指令:只能由操做系统内核部分使用,不容许用户直接使用的指令。例如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。
3. 中断和异常
中断(外中断)是指来自CPU执行指令意外的事件的发生。
异常(内中断、例外、陷入)是指CPU执行指令内部的事件(不能被屏蔽)。
中断是系统正常功能的一部分,异常是由错误引发的。一般异常会引发中断,但中断未必是有异常引发的。
3. 系统调用
系统调用是由操做系统实现的全部系统调用所构成的集合,即程序接口或应用编程接口API(Application Programming Interface),是应用程序同系统之间的接口
操做系统一般提供的系统调用有:进程控制、文件系统控制、系统控制、内存管理、网络管理、socket控制、用户管理以及进程间的信号。
1.7 操做系统的体系结构
1. 模块组合结构
优势:结构紧密、接口简单直接、系统效率相对较高
缺点:高耦合、可扩展性差、可适应性差
适用于系统小、模块少,使用环境比较稳定的系统
2. 层次结构
将操做系统的全部功能模块按功能的调用次序排列成若干层,使得功能模块之间只存在单向调用和单向依赖
优势:模块间的组织和依赖关系明了,系统的可读性、可适应性、可靠性获得了加强;对某层进行修改或替换时,最多只影响到临近两层,便与修改和扩充。
缺点:如何有效分层是问题
3. 微内核结构
(1)内核:在现代操做系统的设计中,每每把一些与硬件紧密相关的模块或运行频率较高的模块以及多模块公用的一些基本操做安排在靠近硬件的软件层次中,并使它们常驻内存,这就是操做系统的内核。
(2)微内核:在操做系统的内核中只留下一些基本的功能,而将其余服务尽量从内核中分离出去,用若干个运行在用户态下的进程来实现,造成C/S模式。
优势:可靠性好、灵活性强、便于维护,适合与分布式处理的计算环境
缺点:各进程借助内核通讯,系统效率不高;频繁的在用户态和核心态之间进行切换,系统开销大