操作系统的定义
- 控制和管理整个计算机系统的硬件和软件资源
- 合理地组织调度计算机的工作和资源分配
- 提供给用户和其他软件方便的接口和环境
- 计算机系统中最基本的系统软件
操作系统的功能
- 处理器;用于分配和控制处理器
- 存储器;负责内存的分配与回收。
- I/O设备;负责I/O设备的分配与操纵。
- 文件管理;负责文件的存取、共享和保护。
特征
(1) 并发
两个或多个事在同一时间间隔内发生。这些事件宏观上是同时发生,微观上是交替发生。操作系统的并发性指计算机系统中同时存在着多个运行的程序。
(2) 并行:
两个或多个事件在同一时刻同时发生。
(3) 共享:
资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
两种共享方式互斥共享方式和同时共享方式。互斥共享方式
互斥共享是指当资源被一个进程A占用时,其他想用使用该资源的进程B就只能等待,只有进程A使用完该资源后,进程B才能够使用该资源,这种共享方式就叫做互斥式共享,把这种资源叫做临界资源或独占资源。如打印机就属于临界资源。
同时共享方式
某一资源在一段时间内可由多个进程"同时"访问,这种"同时"是宏观上的 ,在微观上,这些进程 可能是交替对该资源进行访问,磁盘设备就是这类资源。 (4) 虚拟:
把一个物理上的实体变为若干个逻辑上的对应物,物理实体是实际存在的,而逻辑上对应物是用户感受到的。
虚拟分为时分复用技术和空分复用技术。
时分复用技术
微观上处理机在各个微小的时间段内交替着为各个进程服务。
如:一个单核CPU可以执行多个程序,给用户一种多核的”假象“。
空分复用技术
空分复用是指多个程序或用户同时使用一个资源的不同部分。
如:电脑硬盘分为C盘 D盘 E盘等,实际上只是虚拟逻辑上的分区,实际电脑硬盘还是一个。 (5) 异步:
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底。而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
最基本的特征: 并发和共享,两者互为存在条件
操作系统的发展阶段和分类
(1) 手工操作阶段 输入/输出速度慢 处理机处理速度快,处理机利用率低 。
(2) 单道批处理
引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出。
优点: 资源利用率有所提升。
缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。
(3) 多道批处理
每次往内存中输入多道程序,操作系统正式诞生,并引用了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行。
优点:多道程序并发执行, 共享计算机资源。缺点:用户响应时间长
(4) 分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。 优点:用户请求可以被即时响应, ****并且用户对计算机的操作相互独立
缺点:不能优先处理一些紧急任务, 循环地位每个用户/作业服务一个时间片,不区分任务的紧
急性。
分时操作系统典型的例子就是Unix和Linux的操作系统。
(5) 实时操作系统
优点:能够优先响应一些紧急任务
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件
硬实时系统
必须在绝对严格的规定时间内完成处理 如:导弹控制系统,自动驾驶系统
软实时任务
有一个截止时间,但并不严格 如:12306火车订票系统
原语
由若干条指令组成,来完成一定功能的过程,执行必须过程连续,不允许被中断。 处理机状态****
内核态: CPU可以访问[内存] 所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序
用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取
内核态和用户态的区别就是权限不同,内核态处于权限0,权限较高,用户态处于权限3,权限较低。
用户态切换到内核态的方式:系统调用
进程调用: exit 、 fork
文件系统访问: chmod 、 chown
设备调用: read 、 write
信息读取:读取设备信息
通信: mmap 、 pipe等
操作系统对于进程(的管理包括以下几个方面:
进程的调度:在多个等待使用处理器的进程中,按照一定策略选择合适的进程,使之拥有处理器的使用权而进入运行。
进程的同步:对系统中的多个进程在对共享资源的使用出现竞争时进行控制和协调。
进程的控制:进程的创建和撤消以及进程状态的转换。
进程的安全:解决因多个进程争夺资源的使用权而进入 “死锁”的僵局,使系统安全顺利地运行。
进程与线程
进程是一个程序对某个 [数据集] 的执行过程,是系统分配资源的基本单位。每个进程在内核中都有一个进程控制块(PCB)来维护进程的基本信息和运行状态。
进程控制块(PCB)
name(ID):进程名称(标识符)
status:状态
next:指向下一个PCB的指针
start addr:程序地址
priority:优先级
cpu_status:现场保留区(堆栈)
comm_info:进程通信
process_family:家族
own_resource:资源
处理机调度:
由于资源有限,这些任务无法同时处理,这时需要某种规则来决定处理这些任务的顺序。
从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行。
调度三个层次
1. 高级调度 :按照某种规则,从后背队列中选择合适的作业将其调入内存,并为其创建进程
2. 中级调度 :按照某种规则,从挂起队列中农选择合适的进程将其数据调回内存
3. 低级调度:按照某种规则,从就绪队列中选择一个进程为其分配处理机