文章内容为个人的学习笔记,绝大部分内容摘抄自书本中的知识点,目录也是如此。仅供各位学习参考,另外备注书本是2017年版。
阅读说明
较早前记的笔记,内容并不全,请选择性浏览
操作系统简介
操作系统的作用
为用户使用的应用程序的运行提供了环境,并且为应用程序的开发提供了平台,使应用程序的开发变得简单、高效。
用户与硬件之间的接口
操作系统提供了计算机用户与计算机硬件之间的接口,分别是硬件接口和软件接口。
- 软件接口:如C语言的函数 print
- 硬件接口:如usb接口、串口、并口
资源的管理者
处理机管理
程序的执行必须依靠处理机,任意时刻处理机都只能执行一个程序流; 要使处理机执行多个程序流,就必须由操作系统的处理机调度程序来管理处理机的分配,让多个程序共享处理机; 从宏观角度来看,使得多个程序能“同时”顺利进行。
内存管理
如何为多个应用程序分配内存,并使应用程序的地址空间互不干扰,并在程序执行完毕后,回收所占用的内存,释放内存空间,并且完成逻辑地址到物理地址的转换,是操作系统内存管理程序的要完成的功能。
设备管理
设备管理的任务是要接受用户的I/O请求,为用户分配I/O设备,管理I/O缓存和驱动等功能。
文件管理
计算机把大量需要长时间存储的数据信息以文件的方式存放在外存设备中(如硬盘、USB、光盘、磁带)。 操作系统的文件管理程序,任务是要管理外存设备的空间分配、回收,文件的存取、共享、组织和保护等功能。
操作系统的发展
|
|
单道批处理系统
特点:
- 自动性 自动将作业从外存装入内存运行,当作业运行完毕后,自动撤销已运行完毕的作业,依次从外存装入下一个作业。
- 顺序性 存放在外存的作业,会按顺序的依次装入内存运行,先进入内存的作业先运行完毕。
- 单道性 任何时刻内存只能有一道作业,操作系统每次只能装入一个作业到内存运行,直到作业正常或异常结束,才会装入下一个作业到内存。
缺点: 作业独占CPU、内存,CPU资源严重浪费,不能充分利用。
与无操作系统相比,单道批处理系统减少了长时间等待人工操作的时间
多道批处理系统
特点:
- 调度性 从作业队列中选择要装入到内存运行的单个作业或多个作业
- 无序性 同时驻留在内存的作业,获得CPU的顺序和执行的进度无法预知,先进入内存的作业,不一定先被调度,也不一定先执行完。
- 多道性 在内存中可同时驻留多道程序
- 复杂性
缺点:
- 平均周转时间长 周转时长指的是从作业交到系统开始到作业完成为止的时间
- 缺乏交互能力 在作业运行结束得到输出结果之前,用户无法观察和控制作业的运行。
与单道批处理系统相比,提高了资源的利用率,系统的吞吐量。
分时系统
分时系统是多道批处理系统的自然延伸。允许多个终端用户同时使用计算机。
特点:
- 多路性 一台主机上同时连接多台联机终端。
- 独立性 终端用户操作彼此独立,互不干扰。
- 及时性 用户请求在很短的时间内能得到响应。
- 交互性 用户可以通过终端与系统进行广泛的人机对话。
优点:为用户提供了人机交互的方便性,使多个用户通过不同的终端共享主机。
实时系统
实时系统主要用于实时控制和实时信息处理领域。
特点:
- 多路性
- 独立性
- 及时性
- 交互性
- 可靠性
主流操作系统
主机操作系统
主机操作系统是运行在大型主机上的操作系统,主要提供三种服务:批处理、事务处理和分时处理。
- 批处理 批处理系统处理不需要交互式用户干预的周期性作业。 如:保险公司的索赔处理或者连锁商店的销售报告,通常以批处理的方式完成。
- 事务处理 事务处理系统负责大量的小请求。 如:银行的支票处理或航班预订。业务量小,但是需要很高的处理速度。
- 分时处理 分时系统允许多个远程用户同时在计算机上工作,执行命令或处理作业。
服务器操作系统
服务器操作系统是运行在网络服务器上的操作系统,可以通过网络同时为众多用户服务。服务器可提供打印服务、文件服务、Web服务。
典型的服务器操作系统有:Linux、Windows Server 200X、Solaris、FreeBSD
微机操作系统
也称个人机操作系统,现代微机操作系统都支持多道程序处理,就是通常所说的支持多任务。
常见的微机操作系统有:Windows系列、Linux的不同发行版、Macintosh、Chrome OS等
嵌入式操作系统
嵌入式系统的概念出现在20世纪70年代,是宿主于非计算机设备中的计算机系统。
其特征是:小巧、实时性、可装卸、代码固化、弱交互性、强稳定性、接口统一、低能耗 应用领域:掌上电脑、智能手机、数码相机、自动售货机、自动取款机、工业控制设备、军工装备、游戏机、医疗设备、网络设备等
现代操作系统的特点特征
小节只需要达到“领会”层面
现代操作系统都支持多任务,具有并发、共享、虚拟和异步性特征。
并发
并发指两个或多个事件在同一时间间隔内发生。注意,是同一时间间隔。
并行指的是多个事件同时发生。
如:在一台单CPU单核的电脑中,一边听音乐,一边玩扫雷,扫雷程序在工作的同时音乐程序也在工作。但是,在单CPU单核系统中,任意时刻只能有一个程序流在CPU上执行,之所以用户感觉到两个程序似乎在同时工作,互不干扰,是因为操作系统使两个程序在CPU上快速地轮流交替执行,实现了“并发”的功能。
共享
共享是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享有两种方式,互斥共享和同时共享。 互斥共享是指任意时刻,一种资源只能被一个进程访问。 当一个进程访问资源时,其他进程必须等待,直到资源被进程访问完毕,释放访问权。 如:打印机不采取互斥访问,可能会有多个进程的输出内容都打印在同一张纸上。
并发与共享的关系是相互依赖的。 如果系统不支持并发,资源的使用都是独占的,不需要共享资源。 如果不能实现有效的资源共享,并发就不能得到很好的支持
虚拟
虚拟是指通过某种技术把一个物理实体变成若干逻辑上的对应物。 物理实体是实际存在的,而虚拟仅仅是用户感觉到的。
如虚拟打印机、虚拟内存和虚拟CPU等。 操作系统通过某种技术把少量的物理资源变成较物理资源多的逻辑资源。
异步性
进程以不可预知的速度向前推进。内存中的每个程序何时执行,何时暂停,以怎样的速度向前推进,程序需要花费多少时间才能完成,都是不可预知的。 系统中什么时候会出现需要特殊处理的事件?
如键盘中断,突然打不了字;鼠标中断等也是随机、不可预知的。
操作系统的功能
分别有存储器管理、进程管理、设备管理、文件管理等功能,以及操作系统提供的用户接口。
内存管理
内存管理应具有内存分配、内存保护、地址映射、内存扩充功能。
进程管理
进程的描述
摘取**《现代操作系统》作者Andrew S. Tanenbaum对进程和程序的关系**给出的一段非常生动形象的比喻。
一位计算机科学家正在为她的女儿烘制生日蛋糕。他有制作蛋糕的食谱,以及做蛋糕的各种原料,如面粉、鸡蛋、糖和香草汁等。做蛋糕的食谱好比是程序,计算机科学家好比是处理器CPU,而做蛋糕的各种原料就是输入数据。进程就是计算机科学家阅读食谱利用原料烘制蛋糕的过程。
程序的并发执行
为了说明引入进程的原因,首先介绍程序的并发执行及其特点;为了更好的理解程序的并发执行,先介绍程序的顺序执行,并进行特性对比。
程序的顺序执行
- 顺序性
- 封闭性
- 可再现性
程序的并发执行
- 间断性
- 失去封闭性
- 不可再现性
进程的概念
并发的程序,它们相互共享系统资源。用程序已不能描述程序的并发,所以引入了进程的概念。
进程的定义
-
定义1 进程是允许并发执行的程序在某个数据集合上的运行过程。
-
定义2 进程是由正文段、用户数据段和进程控制块共同组成的执行环境。
正文段:存放被执行的机器指令。 用户数据段:存放进程在执行时直接进行操作的用户数据。 进程控制块:存放程序的运行环境。
进程的特征
- 并发性
- 动态性
- 独立性
- 异步性
- 结构特征 进程实体包括用户正文段、用户数据段和进程控制块。
进程与程序的比较
进程与程序的区别
程序
- 程序是静态的
- 永久性(相对进程而言),存储在介质上的二进制代码
- 存在实体不同,程序是指令的集合
进程
- 进程是动态的
- 暂时性,进程因程序的执行而被创建,由程序的执行结束而被撤销
- 存在实体不同,进程的实体包含正文段、用户数据段和进程控制块
进程控制块
定义:进程控制块是进程实体的一部分,是操作系统最重要的数据结构,它记录了操作系统所需要的、用于描述进程情况及控制进程运行所需的全部信息。
进程控制块中的信息
进程标识符信息
处理机状态信息
指令计数器
程序状态字PSW
用户栈指针
- 进程调度信息
- 进程控制信息
进程控制块这种数据结构在操作系统中有什么作用?
以Linux进程控制块结构变量说明:进程控制块中有prio字段,用来存放进程的优先权,在操作系统决定为多个可执行的进程分配资源时,会利用这个字段比较进程的优先权,将资源分配给prio字段值最大或最小的进程。
进程的状态
进程的3种基本状态
就绪态
进程一旦获得CPU就可以投入运行的状态。在多任务系统中,可以有多个处理就绪状态的进程,这些进程被组织成一个或多个就绪进程队列。
Linux 2.4把所有就绪进程组织成一个先进先出的就绪队列。 Linux 2.6.11根据进程的优先权不同将就绪队列组织成多个不同的就绪队列;优先权相同的进程放在同一个就绪队列中,每个不同的优先权对应不同的就绪队列。
执行态
执行态是进程获得CPU正在运行的状态。系统中执行态的进程数量受CPU数量的限制。单CPU系统中,任意时刻只能有一个进程处于执行态。 也就是说,有N个CPU的系统中,任意时刻系统中最多有N个进程处于执行态。
阻塞态
阻塞态是进程由于等待资源或者事件的发生而暂停执行的状态,系统不会为处于阻塞态的进程分配CPU。在获得其等待的资源或者事件发生之后,就会转变为就绪态。 系统会根据不同阻塞原因的进程分别组织成不同的阻塞队列。 例如:因等待打印机而阻塞的进程排列成一个打印阻塞队列,等待输入数据的进程排列成等待输入数据的队列。