概述
什么是操作系统
- 是控制和管理整个计算机系统的硬件和硬件资源, 是计算机的基石
- 它也是一个运行在计算机的软件程序, 并且合理的组织调度计算机的工作和资源的分配
- 提供给用户和其他软件方便的接口和环境
- 操作系统存在屏蔽了硬件层的复杂性
- 操作系统的内核是操作系统的核心部分, 负责系统的内存管理、硬件设备的管理、文件系统的管理、应用城西的管理, 分为内核态和用户态, 内核态只提供给操作系统使用。
- 系统资源的管理者
操作系统的功能
1、进程管理。主要是对处理机进行管理。
2、存储管理。主要是对内存的分配、保护和扩充。
3、设备管理。对所有输人、输出设备的管理。
4、文件管理。主要涉及文件的逻辑组织和物理组织,目录的结构和管理。
5、作业管理。为用户提供一个友好的环境,方便用户组织自己的工作流程。
操作系统的特征
- 并发
- 并发在宏观上是同时发生的, 微观上看是交替进行的
- 而并行是同一时间一起发生
- 共享
- 资源共享, 指系统种的资源可供内存中多个并发执行的进程共同使用
- 两种资源共享方式
- 互斥共享方式
- 同一时间段只允许一个进程访问该资源
- 同时共享
- 同一时间运行多个进程“可以交替的”访问。
- 互斥共享方式
- 虚拟
- 指把一个物理实体变为若干个逻辑上的对应物
- 异步
- 在多道程序环境下, 允许多个程序并发执行, 但由于资源有限, 进程的执行并不是一贯到底的, 而是走走停停, 以不可预知的速度向前推进。
- 并发以及共享是操作系统最基本的两大特征, 彼此互为存在条件
操作系统的运行机制
- 应用程序: 只能使用非特权指令
- 内核程序(操作系统内核): 可以使用特权指令, (通过状态字来判断现在处于, 内核态还是用户态)
- 中断时让操作系统内核夺回cpu使用权的唯一途径
中断的分类
- 内中断
- 陷阱
- 故障 (缺页中断)
- 终止
- 外中断
- 时钟中断
- I/O中断
- 中断的基本步骤:
- 外设请求中断 -> cpu在满足条件的情况下相应中断 -> 关中断 -> cpu保存cpu现场 -> 查找中断向量表 找到程序入口 -> 服务程序 -> 回复cpu现场 -> 开中断
- 对于内中断: cpu在执行指令的时候会检查是否有异常发生
- 对于外中断: 每个指令周期的末尾, cpu回检查是否有外中断信号需要处理。
系统调用
- 定义:是操作系统提供给应用程序使用的接口可以理解为一种可供应用程序调用的特殊函数, 应用程序可以通过系统调用来请求获得操作系统内核的服务。
- 也就是说在我们运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
- 这些系统调用按功能大致可分为如下几类:
- 设备管理。完成设备的请求或释放,以及设备启动等功能。
- 文件管理。完成文件的读、写、创建及删除等功能。
- 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信。完成进程之间的消息传递或信号传递等功能。
- 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。
- 操作系统会为统一的共享资源进行管理和分配,凡是与共享资源有关的操作, 就必须利用系统调用(陷入指令)提出服务请求。这样可以保证系统的稳定性和安全性
进程管理
进程和线程
程序:
- 是静态的, 就是个放在磁盘中的可执行文件】一系列的指令的集合。
进程
- 定义:
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动(程序的一次执行过程),进程是系统进行资源分配和调度的一个独立单位. - 引入线程后, 进程只作为除cpu外的系统资源的分配单元。
- 同进程内的线程切换不需要切换进程的运行环境。
- 内核级线程切换是需要却换为内核态。
线程
- 线程一种轻量级线程, 是独立调度的基本单位
- 是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
(1)进程是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现操作系统的并发。
(2)线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发。
(3)一个程序至少有一个进程,一个进程至少有一个线程,线程依赖进程的存在。
(4)进程执行过程中拥有独立的内存单元,而多个线程共享进程的内存。
区别
Ⅰ 拥有资源
进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。
Ⅱ 调度
线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。
Ⅲ 系统开销
由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。
Ⅳ 通信方面
线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助 IPC。
进程的特征
- 动态性
- 并发性
- 独立性
- 异步性
- 结构性
进程有哪几种状态?
-
创建状态
-
就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源;
-
运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数;
-
阻塞状态: 进程等待某种条件,在条件满足之前无法执行;
-
终止状态
-
状态切换
-
七状态模型
线程有几种状态?
- 引入线程, 增加并发度
- 新建