操作系统: 基本结构
操作系统概述
OS本质
- 软件分为系统软件、支撑软件、应用软件(功能专用),操作系统是一种系统软件
- 系统软件包括
OS(运行程序),编译器(生成程序),数据库系统DBMS(管理数据)等 - 计算机由上至下可分为用户层、程序层、库例程、系统调用、操作系统、硬件
- 狭义上的操作系统仅包含系统调用和操作系统,它们合称内核
Core/Kernal - 广义上还包含库例程、系统程序及硬件层
- 狭义上的操作系统仅包含系统调用和操作系统,它们合称内核
- 根据侧重点不同,可分类:
- 资源共享及工作效率:
Unix - 易用性:
Windows - 资源高效利用:移动端
OS - 安全性:嵌入式
OS
- 资源共享及工作效率:
OS功能模块概述
CPU管理:- 包括进程管理(对任务进行管理)、
CPU调度(支持多任务)、进程同步控制(支持并发)
- 包括进程管理(对任务进行管理)、
- 内存管理:
- 包括内存分配、虚存管理
- 文件管理:
- 包括接口设计及其实现
- 设备管理:
- 包括
I/O管理,设备分类,设备驱动
- 包括
- 通信
OS服务
UI(user interface,用户接口)服务:CLI(command-line interface,命令行接口):Unix、Linux、Windows Server- 效率高且稳定
- 通过终端(
terminal)键入命令,如今均使用特殊的终端环境控制台(Console) 终端环境统称TTY(teletypewriter) 键入的命令为某种Shell,为脚本语言
GUI(graphical user interface,图形用户接口):WindowsTSI(touch screen interface,触控接口):MacOS
- 程序执行:
- 先将可执行文件(
windows-.exe、linux-.elf、macOS-.mach-o)/脚本(shell/python)文件加载到内存 - 由
CPU取指执行
- 先将可执行文件(
I/O管理- 文件系统:
- 接口:如命名、读写等方法
- 具体实现:需考虑存储结构、性能
- 通信:任务间通信等
- 错误检测(
error detection):即软件中断 - 服务保障(保证上述服务正常运行的服务):(
CPU、内存、磁盘)资源回收、运行日志、系统资源访问控制
OS内核分类
- 单内核(宏内核):
DOS、Unix- 用户层包含应用、库例程
- 内核包含文件系统、
IPC(Inter-Process Communication,进程间通信)、I/O控制、进程管理等性能要求高的服务
- 微内核:
Mach- 文件系统归入用户层
- 性能效率低,但可移植、可扩展性强、且支持分布式系统
- 混合内核:
Windows、XNU、MacOS
系统调用
- 系统调用是用户程序(及标准库等)和系统服务间的最原始接口,用户程序通过系统调用来主动访问系统程序
- 和函数调用的区别:将用户态转换为核心态,以访问处于保护状态的程序和设备;执行完后切换回用户态
- 核心态是特殊的执行模式,使核心服务代码在被保护的状态下执行
- 使用系统调用与函数调用类似,仅仅是由操作系统完成期间的执行模式转换操作
- 系统调用的参数传递方式:
- 寄存器传递:效率高,优先使用;但可传递参数数量少
- 内存块传递:分配内存块给待传递参数,将块地址传递给系统程序
- 栈传参:用户程序将参数入栈,系统程序退栈使用参数