如今,计算机已经走到了家家户户,我们所说的Win7,Win8,Linux,Ios已经成为大家耳熟能想的字样,但是大家知道为什么会出现不用的操作系统吗?操作系统在我们的计算机中扮演着什么样的角色,有着什么样的作用呢?
- 什么是操作系统
- 硬件:存在计算机最底层
计算机硬件即计算机的物理组成,与计算机软件相对,包括处理器、存储器、控制器、输入设备和输出设备等(如鼠标键盘)
- 程序操作系统:直接部署在计算机硬件之上
由于计算机的组成硬件较多,操作复杂,对于用户来说,直接对硬件操作难度太大,所以操作系统对硬件进行了抽象提供接普通用户使用。操作是为了简化(抽象)计算机的硬件,为上一层用户程序接口提供一个更简单的,更清晰的计算机模型,并管理计算机硬件,这样就相当于每一个硬件都可以通过操作系统对其进行控制
- 用户程序接口:部署在操作系统之上,连接操作系统和最上层普通的软件
用户程序接口是为了将操作系统使用硬件的功能通过一个借口供最上层的普通软件使用,这样就可以是的用户不需要知道繁多复杂的计算机硬件功能,直接调用操作系统接口就可实现
- 最上层的用户软件:操作系统其实和最上层程序一样,也是软件的一种
可实现用户可以通过自己的需求,自行对所需软件进行下载,就是我们平时电脑所用的程序都是最上层软件
- 用户态和内核态
操作系统的一个主要任务就是隐藏硬件,呈现给程序(程序员)良好、清晰、优雅、一致的抽象
- 计算机硬件
- 处理器
- 存储器
- 控制器及输入输出设备
- 操作系统核心概念(仅对概念提及,接下来的文章将具体说明)
- 进程与线程
- 进程: 1进程模型 2进程的创建与终止3进程的层次与状态 4进程的实现
- 线程: 1线程的使用2POSIX线程 3用户空间实现线程 4内核的线程
- 进程通信:1竞争条件 2临界区 3信号量 4互斥量
- 调度: 1调度 2批处理调度 3线程调度
- 存储管理
- 存储器抽象: 1无存储抽象
- 地址空间: 1交换技术 2空闲内存管理
- 虚拟内存: 1分页 2页表 3加速页表
- 页面置换算法: 1置换算法 2置换算法对比
- 分页系统设计问题 1负载控制 2共享页面
- 文件系统
- 文件: 1文件的结构 2文件存取 3文件操作
- 目录: 1目录系统 2路径名 3目录操作
- 文件系统的实现: 1文件系统布局 2文件实现 3共享文件
- 文件系统管理优化:1磁盘空间管理 2文件系统性能
- 输入输出
- I/O硬件原理:1设备 2设备控制器 3内存映射
- I/O软件原理:1程序控制I/O 2驱动控制I/O
- I/O软件层次:1中断处理程序 2设备驱动程序
- 盘: 1磁盘格式化 2磁盘臂调度算法
- 死锁
- 资源: 1可抢占资源 2资源获取
- 死锁: 1资源死锁条件 2死锁建模
- 鸵鸟算法: 1了解
- 死锁检测与恢复: 1一个资源的死锁检测 2多个资源的死锁检测
- 死锁避免: 1银行家算法
- 死锁预防: 1破坏互斥条件等
- 饥饿: 1饥饿 2活锁