本系列学习笔记主要参考清华大学向勇和陈渝老师在网易公开课上开设的操作系统公开课,课程链接:http://open.163.com/movie/2018/12/6/0/ME1NSA351_ME1NSM960.html,另外还参考了Abraham Silberschatz等人著的《实用操作系统概念》。
什么是操作系统?
操作系统没有一个完整、精确的定义。因此,我们从功能和特点的角度来理解什么是操作系统:
1)从用户角度来看,操作系统是一个控制软件。它有着管理应用程序、为应用程序提供服务(I/O服务,声卡、网卡的访问等)以及杀死应用程序的功能;
2)从操作系统内部管理对象的角度来看,操作系统是一个资源管理器,它的具体作用就是管理外设,分配资源。
补充:OS(Operating System)可以协调不同程序对计算机资源的使用,保障计算机资源的利用率;OS站在管理者的角度给应用程序、底层硬件提供管理、控制以及服务的功能。
在计算机内部,OS把CPU抽象成进程,把磁盘抽象成文件,把内存抽象成地址空间,从而提供给应用程序使用。
下面以CPU、内存和磁盘为例,说明OS对这些硬件资源的管理:
1)CPU的管理涉及到CPU调度器和进程/线程的管理。
2)内存的管理涉及到物理内存的管理和虚拟内存的管理。
3)磁盘的管理即文件系统的管理(以文件形式提供给应用程序一个存储、访问和永久保存数据的环境)。
总结:
OS Kernel有如下四个特征:
1)并发。即计算机系统中同时存在多个可以运行的程序,需要OS对它们进行管理和调度。
补充说明并发与并行的区别:并发是指在一段时间内,有多个程序可以运行,这段时间可长可短;并行是指在一个时间点上,有多个程序可以同时执行。能够并行执行的程序一般要求计算机系统中存在多个CPU。
2)共享。存在两种方式的共享:一种是同时访问,即可以让两个不同的应用程序同时分别访问内存中的A块和B块(A与B是隔离开的);另一种是互斥共享,可以理解为一个内存单元允许被多个程序访问,但是在一个时间点上,对于该内存单元来说,只能有一个程序来访问,只有当这个程序访问结束后,其他程序才能接着访问这个内存单元。
3)虚拟。利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务。(关于虚拟,前文曾提及OS把CPU虚拟化成进程,把磁盘虚拟化成文件,把内存虚拟化成地址空间)。
4)异步。即程序的执行不是一贯到底的,而是走走停停,向前推进的速度不可预知;但只要运行环境相同,OS需要保证程序的运行结果也相同。关于异步这个特征,我的理解是它的存在是为了提高计算机硬件资源的利用率,减少在程序执行的过程中某个硬件资源的空闲时间。
附上一句视频中提到的古谚语:我听到的我会忘记,我看到的我能记住,只有我做过的我才能理解。
共勉之。