操作系统的结构需要从这几个方面来考虑:他为用户提供了哪些服务和界面,系统各个组成部分及其相互关系
操作系统的操作
大致可分为:进程管理,主存管理,文件管理,辅存管理和IO管理
进程管理
- 进程的创建和结束
- 进程的挂起和恢复
- 进程锁\进程交互\进程死锁的规则
内存管理
- 记录内存使用
- 分配和回收内存资源
文件管理
- 文件的创建和删除
- 文件目录的创建和删除
- 文件二进制操作
- 映射文件到二级存储
- 在非易失性存储上备份
辅存管理
- 空闲存储空间管理
- 存储分配
- 磁盘调度
IO管理
管理IO设备
操作系统的服务
对于用户
- 程序的执行:最关键的服务,从辅存中加载程序到内存中并执行
- IO操作,用户不能直接惊醒IO操作,这也需要系统来提供服务
- 文件操作,用户需要读写,创建和删除文件
- 信息交流:在两个进程间传送消息:方法一般分为发送报文和共享内存
- 错误检测
对于确保系统正常运行
- 资源分配:多个程序同时运行下资源分配显得更为重要
- 记录任务
- 保护:所有资源被正确回收,所有连接使用后被断开
操作系统界面 接口
用户界面
- GUI 用户图形界面
- cmd命令行
- batch 批处理命令
程序接口
-
系统调用
与一个固定ID关联,参数传递时可以传寄存器里的数,也可应从堆栈中,内存中传递
-
API
API建立在系统调用之上,只要知道AIP函数入口很容易使用,但需要运行库来支持.最常用的AIP有
win32API (WINDOWS) POSIX(UNIX,LINUX) JAVA API (JVM)附注:系统调用的种类
进程管理类 文件管理 设备管理 信息维护 信息传递
操作系统结构
简单结构
-
分层结构
系统分为很多层,高层只能调用低一层的功能
-
微内核结构
如名,提供精简的内核,提供最小化的进程管理,内存管理,和通讯设备(通讯使用消息传递的方式)
-
模块结构
最常用的结构,类似分层结构,但和分层结构相比,模块结构更加松散,每个模块不分高低,相互依赖使用
举例说明:
如 MS-DOS 虽然有一定的分层,但模块之间的区分很不清楚,而UNIX就分为了内核部分和系统程序两个模块