计算机操作系统
基本特征
-
并发
- 并发是在宏观上的一段时间内能同时运行多个数据,而并行则指同一时刻能运行多个指令。
- 并行需要硬件支持,如分布式计算系统,多流水线
- 操作系统通过引入线程和进程,使得程序能够并发运行
-
共享
- 指系统中的资源可以被多个并发进程共同使用。
- 互斥共享:其资源为临界资源,同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。
- 同时共享
-
虚拟
- 把一个物理实体转换为多个逻辑实体。
- 虚拟技术:1.时间(分)复用技术和空间(分)复用技术。
- 多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一个小时间片并迅速切换。
- 虚拟内存使用了空分复用技术,将物理内存抽象为地址空间,使得每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中
-
异步
指进程不是一次性执行完毕,而是以不可知的速度向前推进。
基本功能
- 进程管理
- 进程控制
- 进程同步
- 进程通信
- 死锁处理
- 处理机调度
- 内存管理
- 内存分配
- 地址映射
- 内存保护与共享
- 虚拟内存
- 文件管理
- 文件存储空间的管理
- 目录管理
- 文件读写管理和保护
- 设备管理
- 完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率。主要包括缓冲管理、设备分配、设备处理、虚拟设备等。
系统调用
如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。
Linux 的系统调用主要有以下这些:
Task | Commands |
---|---|
进程控制 | fork(); exit(); wait(); |
进程通信 | pipe(); shmget(); mmap(); |
文件操作 | open(); read(); write(); |
设备操作 | ioctl(); read(); write(); |
信息维护 | getpid(); alarm(); sleep(); |
安全 | chmod(); umask(); chown(); |
大内核和微内核
大内核
大内核是将操作系统功能作为一个紧密结合的整体放到内核,各模块共享信息,所有性能很高。
微内核
- 由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。
- 在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。
- 因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。