操作系统概念
我们很难对操作系统下一个完整,精确的定义,但是我们可以通过分析操作系统的在计算机工作时起的作用,来认识操作系统究竟是什么?
1. 从用户角度上,操作系统是一个控制软件
2. 操作系统管理应用程序,为应用程序提供服务
3. 操作系统管理内设,分配资源
4. 在计算机层次结构中,位于硬件之上,应用程序之下
操作系统是一种系统软件,对外有两种接口:Shell,GUI。
地位:中间件,是计算机科学研究的基石之一、是计算机系统的基础组成部分。
操作系统管理的四大硬件资源
1. cpu——进程管理
2. 内存——物理内存管理和虚拟内存管理
3. 磁盘——文件系统
4. 底层硬件——中断处理与设备驱动
操作系统的四大特征
1. 并发:计算机系统可以同时运行多个运行的程序
2. 共享: “同时访问”资源,互斥共享
3. 虚拟:利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
4. 异步: 程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知;但只要运行环境相同,OS 需要保证程序运行的结果也要相同。
操作系统的难点
-
操作系统代码量大
-
并发性和琐碎的调度算法的挑战
-
高效性、低耗性、稳定性需求,具有一定的硬件编程性质
-
锁的问题:最底层必须互斥
-
权衡:时间-空间、性能和可预测性、公平和性能(这个就说明了GPU和CPU的性能差异)
-
管理原始硬件:中断、异常、上下文切换、TLB和页表;汇编语言
OS Kernel 特征
同样对应于操作系统的四大特征。
-
并发(计算机系统中同时存在多个运行的应用程序,需要OS管理和调度)
-
共享(互斥共享/同时共享)
-
虚拟(cpu虚拟化为进程、磁盘虚拟化为文件系统、内存虚拟化为地址空间)
-
异步
其他
Linux、windows、Android属于外壳(shell),而不是内核 kernel,后者是研究重点,它位于 shell 之下。
并发:某一时间段多个应用程序运行
并行:某一时刻多个程序运行(需要计算机存在多个cpu)
操作系统需要权衡:
- 空间与时间(内存和cpu)
- 性能和可预测性
- 公平性和性能
最后
以陈渝老师的一句话结尾:
我听到的会忘记;
我看到的才能记住;
然而只有事必躬亲我才能理解。
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。