操作系统学习(一)——操作系统基础
一、操作系统
操作系统(Operating System, OS) 是一种系统软件,用于管理计算机硬件与软件资源,并为应用程序提供服务。
作用:
- 资源管理者:管理CPU、内存、硬盘、I/O设备等资源;
- 用户与硬件之间的桥梁:用户通过操作系统间接使用硬件;
- 提供运行环境:为应用程序提供运行支持,如文件系统、网络、接口等;
- 提高效率与用户体验:通过调度、并发控制、虚拟内存等手段提升系统响应和吞吐率。
基本特征:
特征名称 | 说明 |
---|---|
并发性(Concurrency) | 多个程序或进程可以“同时”运行,提高资源利用率和系统吞吐量 |
共享性(Sharing) | 多个用户或进程可以共享计算机系统中的硬件或软件资源 |
虚拟性(Virtualization) | 操作系统通过抽象和模拟机制将物理资源虚拟为多个逻辑资源 |
异步性(Asynchrony) | 程序执行的不可预知性,每个进程按自己的速度独立运行 |
程序控制性 | 操作系统控制程序的运行,包括加载、调度、挂起、终止等 |
中断处理性 | 能及时响应和处理来自硬件或软件的中断事件 |
安全性与保护性 | 提供用户隔离、权限管理、错误处理,确保系统稳定和数据安全 |
二、操作系统的功能
1. 进程管理(Process Management)
- 进程与线程;
- 进程状态(就绪、运行、等待);
- 进程调度算法(FCFS、SJF、RR、优先级调度等);
- 同步与互斥(信号量、互斥锁);
- 死锁(产生条件、预防与解除方法)。
2. 内存管理(Memory Management)
- 内存分配方式(连续分配、分区分配、分页、分段);
- 虚拟内存(页表、
TLB
、换页算法如LRU
、FIFO
); - 内存保护和地址转换(逻辑地址 ↔ 物理地址)。
3. 文件系统(File System)
- 文件的组织方式(顺序、索引、链接);
- 目录结构(单级、多级、树型);
- 文件操作(创建、读写、删除);
- 存储管理(空闲空间管理、磁盘调度算法)。
4. 设备管理(Device Management)
- I/O设备分类(块设备、字符设备);
- I/O控制方式(中断、轮询、
DMA
); - 缓冲管理、驱动程序;
- 设备独立性与抽象。
5. 用户接口(User Interface)
- 命令行界面(CLI)与图形用户界面(GUI);
- 系统调用(System Call)机制。
三、操作系统的类型
- 批处理系统(Batch System):早期操作系统,不支持交互;
- 分时系统(Time-Sharing System):多个用户共享计算机资源;
- 实时系统(Real-Time System):对时间要求高的系统,如工业控制;
- 网络操作系统(Network OS):支持网络通信和分布式计算;
- 嵌入式操作系统(Embedded OS):运行在嵌入式设备上,如
RTOS
。
四、操作系统的结构
1. 单体结构(Monolithic)
- 所有功能模块紧密集成在内核中,如
Unix
。 - 优点:性能高、通信开销小;
- 缺点:模块耦合强、难维护、扩展性差。
示例:MS-DOS
、早期 UNIX
。
2. 分层结构(Layered Design)
- 操作系统划分为若干层,每层只依赖于下层,提供服务给上层。
- 优点:结构清晰、易调试;
- 缺点:设计复杂、性能略下降。
示例:THE
操作系统、部分 UNIX
分层实现。
3. 微内核结构(Microkernel)
- 核心思想:把内核功能“做小”,只保留:
- 进程/线程管理,
- 中断处理,
- IPC(进程通信),
- 基本内存管理。
- 其他功能(如文件系统、网络协议、驱动)放到用户空间运行。
- 优点:
- 安全性强:出错只影响对应模块;
- 可移植性好。
- 缺点:
- 模块间频繁通信,性能损耗较大。
示例:Minix
、QNX
、Mach
(Mac OS X 基础)。
4. 模块化结构
- 特点:
- 类似单体结构,但模块可以动态加载/卸载;
- 内核支持插件式功能扩展(如 Linux 的
insmod
、modprobe
)。
- 优点:
- 可扩展、易维护;
- 性能优于微内核。
- 缺点:
- 若模块错误,仍可能影响内核稳定。
示例:现代 Linux、Windows NT 系列。
5. 客户机-服务器结构(Client-Server OS)
- 特点:操作系统被分为客户端(请求服务)与服务器(提供服务)进程。
- 通信方式:消息传递(message passing);
- 典型应用:分布式系统、网络操作系统。
示例:Andrew
文件系统(AFS)、Plan 9 from Bell Labs
。
6. 虚拟机结构
- 思想:将物理硬件抽象成多个逻辑主机,每个虚拟机可运行一个操作系统实例。
- 组件:
VMM
(虚拟机监视器 / Hypervisor);- 客户操作系统(Guest OS)。
- 优点:
- 实验、测试、隔离、安全性强;
- 缺点:
- 有一定性能损耗。
示例:VMware
、VirtualBox
、KVM
、Xen
、JVM
(针对 Java)。
五、操作系统的典型实例
历史发展:
DOS
→UNIX
→Windows
→Linux
→Android
、iOS
等移动系统
典型操作系统:
Windows
:用户友好、图形化界面;Linux/Unix
:开源、稳定、安全,广泛用于服务器和嵌入式;Android
:基于Linux内核,面向移动设备;iOS/macOS
:Apple公司系统,封闭、安全、优化良好。