目录
一、什么是操作系统?
没有一个完整、精确、公认的定义;这里从功能和特点来介绍操作系统:
从用户角度上,操作系统是一个控制软件; 管理应用程序; 杀死应用程序; 为应用程序提供服务。
站在管理者的角度上,对应用程序和底层硬件进行管理、控制和服务。 资源管理; 管理外设,分配资源。
通过操作系统用户可以很好的对CPU、磁盘、内存进行理解,操作系统对底层的硬件进行了抽象化,比如CPU抽象成了进程,磁盘抽象成了文件系统,内存抽象成了地址空间。
总结来说,操作系统就是,承上启下的作用,硬件之上,应用程序之下;
整体架构
其中对外接口为shell(外壳)、对内接口为kernel(内核),像Windows和Linux的界面话操作,都属于是shell的范畴。
二、Kernel
kernel是研究的重点,在shell之下;而kernel操作系统内部组件包括:
- CPU:CPU调度、进程和线程管理
- 内存:物理内存和虚拟内存管理
- 磁盘:文件系统管理
- 终端处理与设备驱动
OS Kernel特征
- 并发:计算机中存在多个运行程序,需要对OS管理和调度。
- 共享:同时共享、互斥共享。
- 虚拟:利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
- 异步:程序执行不是一贯到底,而是走走停停,向前推进的速度不可预知,但只要运行环境相同,OS需要保证程序运行结果也要相同。
- 并发:一段时间内多个程序运行
- 并行:一个时间点上多个程序运行,要求要多个CPU才能实现