操作系统(一)
操作系统(一)
操作系统的定义与功能
定义
是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机工作和资源的分配,以提供给用户和其他软件方便的借口和环境,它是计算机系统中最基本的系统软件。
操作系统的功能和目标
- 操作系统——作为系统资源的的管理者
- 提供的功能:处理机管理;存储器管理;文件管理;设备管理;
- 目标:安全,高效;
- 操作系统——作为用户和计算机硬件之间的接口
-
命令接口:(允许用户直接使用)
- 联机命令接口:用户说一句,系统做一句(交互式命令接口)
例如cmd命令
- 脱机命令接口:用户说一堆,系统做一堆(批处理命令接口)
例如*.bat文件
-
程序接口(允许用户通过程序间接使用,由一组系统调用组成【系统调用即程序接口】)
-
GUI:例如拖拽到回收站完成delete操作
- 操作系统——作为最接近硬件的层次
实现对硬件机器的扩展
操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件 能够相互协调配合,实现更多更复杂的功能 普通用户无需关心这些硬件在底层是怎么组织起来工作的,只需直接使用操作系统提供的接口即可
封装思想:操作系统把一些 丑陋的硬件功能封装成简单 易用的服务,使用户能更方 便地使用计算机,用户无需 关心底层硬件的原理,只需 要对操作系统发出命令即可
操作系统的四个特征
- 并发
- 共享
- 虚拟
- 异步
并发和共享是最基本的特征,二者互为存在条件
如果没有并发和共享就谈不上虚拟和异步
并发
概念:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
常考易混概念——并行:指两个或多个事件在同一时刻同时发生。
在计算机中,操作系统的并发性指的是计算机系统中同时存在着多个运行着的程序
共享
概念:资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用
虚拟
概念:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上 对应物(后者)是用户感受到的
- 时分复用技术:例如虚拟处理器
- 空分复用技术:例如虚拟存储器
异步
概念:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的, 而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
操作系统的发展与分类
-
手工操作阶段:主要缺点:用户独占全机、人机速度矛盾导致 资源利用率极低
-
单道批处理系统
引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出主要优点:缓解了一定 程度的人机速度矛盾, 资源利用率有所提升。
主要缺点:内存中仅能 有一道程序运行,只有 该程序运行结束之后才 能调入下一道程序。 CPU有大量的时间是在 空闲等待I/O完成。资源 利用率依然很低。
-
多道批处理阶段(操作系统诞生)
主要优点:多道程序并发执行,共享计算机 资源。资源利用率大幅提升,CPU和其他资 源更能保持“忙碌”状态,系统吞吐量增大。
主要缺点:用户响应时间长,没有人机交互 功能(用户提交自己的作业之后就只能等待 计算机处理完成,中间不能控制自己的作业 执行。eg:无法调试程序/无法在程序运行过 程中输入一些参数)
-
分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用 户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/ 作业服务一个时间片,不区分任务的紧急性。
-
实时操作系统
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事 件。实时操作系统的主要特点是及时性和可靠性
-
网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传 送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是 一种典型的网络操作系统,网站服务器就可以使用)
-
分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些 计算机上,由它们并行、协同完成这个任务。
-
个人计算机操作系统:如 Windows XP、MacOS,方便个人使用。
操作系统的运行机制和体系结构
指令:可以被cpu识别和执行的命令
- 特权指令
- 非特权指令
处理器状态(由程序状态字寄存器中的某一个标志位来标识的)
- 用户态(目态)此时只能执行非特权指令
- 核心态(管态)此时特权指令,非特权指令都可执行
程序
- 内核程序(作为系统的管理者,既可以执行特权指令也可以执行非特权指令,运行于核心态)
- 应用程序(普通程序只能执行非特权指令,运行于用户态)
中断机制
“中断”会使CPU由用户态变为内核态,使操作系统重新夺回对CPU 的控制权
“中断”是让操作系统内核夺回CPU使用权的唯一途径
内核态->用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统 将主动让出CPU使用权 用户态->内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺 回CPU的使用权
分类
外中断的处理过程
- 用户态处理一系列指令,在每执行完一个指令,CPU检查是否有外部的中断指令
- 若检测到外部的中断信号,那么保护被中断的进程的CPU环境。
- 根据中断信号的类型转入中断处理程序
- 恢复原进程的CPU环境,并退出中断,继续执行原程序。
系统调用
程序接口由一组系统调用组成。
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提 出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
系统调用的分类
系统调用与库函数的区别
高级语言执行时系统调用的过程
核心态本可以执行 特权/非特权指令, 而陷入指令是唯一一个只能在用户态执行 不能在核心态执行的指令。