概述
一、基本功能
1. 内存管理 *
内存分配、地址映射、内存保护与共享、虚拟内存、...
2. 进程管理 *
进程控制、进程同步、进程通信、死锁处理、处理机调度、...
3. 文件管理
文件存储空间管理、目录管理、文件读写管理和保护、...
4. 设备管理
缓冲管理、设备分配、设备处理、虚拟设备、...(完成用户的I/O请求,方便用户使用各种设备,提高设备利用率)
二、基本特征
1. 并发 *
并发
: 宏观上在一段时间内能同时运行多个程序(实际上是交替执行)
并行
: 同一时刻能运行多个指令,需要硬件支持(如流水线、多处理器)
操作系统引入进程和线程实现并发。
2. 共享
共享
: 系统中的资源可以被多个并发进程共同使用
两种共享方式:互斥共享 、 同时共享
互斥共享的资源称为临界资源,在同一时间只允许一个进程访问,需要用同步机制来实现对临界资源的访问。
3. 虚拟
虚拟技术
: 把一个物理实体转换为多个逻辑实体
两种虚拟技术 ——
时分复用技术 :如多个进程能在同一个处理器上并发执行使用时分复用技术,每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。
空分复用技术 :虚拟内存使用了空分复用技术,将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间和物理内存使用页进行交换,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。
4. 异步 *
异步
: 进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进
异步的意义:A进程正在执行一个“读取某个大文件中的数据并执行计算”的任务,但是读数据这个IO操作很耗时间,而此时B进程正在等待A进程的完成任务,这样就会造成时间浪费。异步操作会在A进行IO操作的时候,将CPU使用权交给B进程,并保存自己当前的状态;待A进程完成IO操作,CPU使用权又回到A进程。
三、系统调用
如果一个进程在 用户态 需要使用 内核态 的功能,就进行 系统调用 从而陷入内核,由操作系统代为完成。
系统调用流程Linux的主要系统调用
进程控制: fork()
, exit()
, wait()
进程通信: pipe()
, shmget()
, mmap()
文件操作: open()
, read()
, write()
设备操作: ioctl()
, read()
, write()
信息维护: getpid()
, alarm()
, sleep()
安全: chmod()
, umask()
, chown()
四、内核
-
大内核
: 将操作系统功能作为一个紧密结合的整体放到内核 ;各模块共享信息,因此性能很高。 -
微内核
: 将一部分操作系统功能移出内核,降低内核复杂性。移出的部分根据分层的原则划分成若干服务,相互独立 ;剩下来的那部分就构成了微内核 。
在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。
用户态和内核态之间频繁的切换会造成一定的性能损失。
微内核架构五、中断
1. 外中断
由 CPU 执行指令以外的事件引起,如 I/O 完成中断 ,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断 、控制台中断等。
2. 异常
由 CPU 执行指令的内部事件引起,如非法操作码 、地址越界 、算术溢出等。
3. 陷入
在用户程序中使用系统调用。
网友评论