操作系统 1.概述
本文最后更新于:2024年5月11日 下午
复习操作系统,最大的感觉就是知识点很多,虽然一开始准备按面试重点随便看看,但是不知不觉就又变成像考前复习一样把知识点详细的捋一遍。。。不过感觉OS知识点划分很明显,进程管理——存储管理——设备管理——文件管理,还是很有条理的。
概述
操作系统定义
计算机系统
- 硬件:处理器、控制器、存储器、输入输出设备
- 软件:系统软件、支撑软件、应用软件
操作系统属于系统软件,在硬件基础上的第一层软件,是其他软件和硬件之间的接口
定义:一组计算机程序的集合,主要用以控制和管理计算机的硬件和软件资源,合理地组织计算机的工作流程,向应用程序和用户提供方便、快捷、友好的使用接口
操作系统功能
进程管理
进程(process)如何使用处理器(CPU)
- 进程控制和管理
- 进程同步和互斥
- 进程通信和死锁
- 线程(thread)控制和管理
- 进程调度
- 并发(concurrency)是现代OS最重要、最基本的特征
存储管理
管理内存资源
- 存储分配
- 存储共享
- 地址转换与存储保护
- 存储扩充
设备管理
管理输入/输出(I/O)设备,使多个用户能够共享设备,方便地使用设备
- 管理输入输出的缓冲区
- 设备独立性
- 设备分配
- 虚拟设备
- 磁盘存储器管理、即插即用、节能
文件管理
信息以文件的形式存放在外存上。文件管理指对文件进行组织和访问控制,实现按名存取,为用户提供方便的存取访问和可靠的共享,实现文件保护
- 文件结构和目录管理
- 提供文件的存取访问
- 实现文件的存储空间管理
- 实现文件的共享和保护
网络通信与服务
- 包含主要的标准局域网的物理层与数据链路层网络接口 (以太网、无线网等),支持网络进程通信、网络文件服务等分布计算的基本功能
安全与保护
本地与网络用户的身份认证与鉴别、用户的使用权限控制、文件系统的访问控制等
功能间的关联:
计算机系统提供了不同层次的抽象,来掩藏实际实现的复杂
OS特征
并发性(concurrency)
两个或多个事件在同一时间间隔内发生的、同时处于活动状态的特性
单处理器多道程序环境下
- 微观上交替执行——串行
- 宏观上都在运行——并发
并行性:两个或多个事件同一时刻发生
- 并发性中包含了并行的可能
- 宏观和微观都是并发
共享性
- 互斥共享方式(显式资源共享):一段时间内只允许一个进程访问,多个进程互相排斥使用的资源。如打印机、缓冲区、数据和表格等。在一个时间段内只允许一个进程访问的资源称为临界资源,用户能感觉到必须互斥访问
- 交替共享方式(透明或同时资源共享):宏观上允许多个用户或程序“同时”访问。微观上用户或程序交替访问资源。如磁盘设备的访问
随机性(异步性)
随机性强调的是操作系统的设计与实现要充分考虑各种可能性,以便稳定、可靠、安全和高效地达到程序并发和资源共享的目的
虚拟性
将一个物理实体映射为一个或多个逻辑对象。物理实体客观存在,而逻辑对象是虚构的
- 时分复用: 通过多道程序和分时使用CPU技术,物理上的一个CPU变成逻辑上的多个CPU
- 虚化:
- 窗口技术可把物理上的一个屏幕变成逻辑上的多个虚拟屏幕
- (IBM的)VM技术把物理上的一台计算机变成逻辑上的多台计算机
- 内存、CPU以及外部设备都采用虚拟技术,从逻辑层面上扩充了物理设备的数量,操作系统在资源的使用上更加自由和灵活,不受物理设备数量的限制
OS的发展
- 手工操作系统
- 早期批处理系统:将一批作业进行组织并一起提交给系统,系统根据作业队列中作业的顺序自动完成作业的装入、汇编、执行,在作业提交后,用户不能与作业进行交互
多道程序系统
实现的基础——通道+中断
- 基本思想:在内存中同时存放几道程序,交替执行
分时操作系统
多个用户通过终端进入计算机系统,共享计算机资源。一种多用户下的多进程并发环境。典型的分时操作系统:UNIX
- 同时性:允许各终端用户同时工作,系统分时响应用户请求
- 交互性:支持联机操作,用户可以通过操作系统进行交互,随时控制和调试程序
- 独立性:用户之间彼此独立,好象独占计算机系统,互不干扰
- 及时性:用户请求能在较短的时间内得到响应
实时操作系统
系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。典型的实时操作系统:过程控制(生产过程控制,如导弹、卫星发射);实时信息处理系统(银行、12306)
个人操作系统
Windows、Linux等
网络操作系统
除具备通常操作系统功能外,还具备联网功能,支持网络体系结构和各种网络通信协议,提供网络互连能力,支持可靠、有效、安全的数据传输
客户机/服务器(C/S)模式:
- 客户机一般由微型计算机承担,主动从本地向服务器提出服务请求
- 服务器接收客户机请求、处理请求、返回服务结果。一般由高档微机、小、中、大型机承担
对等模式
网络中的每台计算机同时具有客户端和服务器两种功能
分布式操作系统
通过通信网络将物理上分布的具有自治功能的数据处理系统或计算机系统互连起来,实现信息交换和资源共享,协作完成任务
计算机网络系统的高级形式,由多台计算机组成,计算机之间没有主次之分
数据和控制及任务的分布性、整体性、资源共享的透明性、各节点的自制性和协同性
嵌入式操作系统:运行在嵌入式(计算机)环境中,对整个系统各种部件和资源进行统一协调、处理、指挥和控制的系统软件。具有操作系统的基本功能
接口
系统调用+内核函数
不能直接调用内核函数,因为要实现对系统的保护。程序运行空间:
- 内核空间(核心态,管态)
- 用户空间(用户态,目态)
当应用程序需要获得系统服务时,就必须利用操作系统提供给用户的特殊接口——系统调用(唯一途径)
- 用户进程–>系统调用–>内核
程序接口
系统调用(system call)
由中断驱动
1应用程序使用系统调用时产生一条指令(陷入指令或访管指令),该指令中存放了对应系统调用的功能号,有时还附带传递给内核的参数
系统调用–>功能号–>入口地址表–>入口地址
2处理机执行到该指令时发出相应的中断信号给“陷阱处理机制”
3陷阱处理机制启动相关的内核函数完成该系统调用所要求的功能:
- 保护CPU现场
- 获取功能号
- 根据功能号查找对应内核函数入口地址表
- 转到入口地址执行内核函数
- 内核函数执行完,中断处理结束
4恢复CPU现场,继续执行中断点的下一条指令
执行系统调用时,应用程序从用户态转到了核心态,即执行内核函数时必须在核心态下运行,但访管指令本身是在用户态下执行的
API(application programming interface)
操作接口:
向用户提供可以操控计算机的接口。
- 命令界面(CLI,Command Line Interface ):简单命令的一般形式:命令 参数1 参数2 …参数n
- 图形界面( GUI,Graphics User Interface )
- 作业控制命令:专为批处理作业用户提供,也称批处理用户接口。操作系统提供一个作业控制语言JCL(Job Control Language),由一组作业控制语句、作业控制操作命令及相应语法规范组成
设计实现方法
特点
- 与硬件关联
- 复杂程度高
- 生产周期长
原则
- 可靠性
- 方便性
- 高效率
- 易维护性
- 可扩充性
- 开放性
体系结构
- 无结构操作系统
- 模块化结构
- 分层结构
- 客户/服务器结构
- 虚拟机结构
- 面向对象的结构
流行操作系统简介
- MS-DOS—>Windows
- Unix—>Linux