1 操作系统的概念与功能
我们先来看一下电脑是如何诞生的吧:
厂商会把CPU、内存等硬件组装成一台裸机;
而在裸机出售前,一般厂商都会安装一个操作系统;
我们购买电脑后,可以在操作系统上安装应用程序(软件);
作为用户的我们,可以使用这些应用程序。
于是我们得到计算机系统的层次结构如下:
王道书上给出的操作系统的定义如下:
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,它是计算机最基本的系统软件。
说明:
操作系统作为软件和硬件中的一个层次,是系统资源的管理者;
操作系统需要向上层(应用程序和用户)提供方便易用的服务;
操作系统是最接近硬件的一种的软件。
操作系统的功能和目标–作为系统资源的管理者
有如下功能:
处理机管理
存储器管理
文件管理
设备管理
操作系统的功能和目标–向上层提供方便易用的服务
操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能够更加方便地使用计算机,用户无需关心底层硬件的原理,只要对操作系统发出命令即可。具体见下图:
操作系统使用举例:
直接给用户使用的
GUI:很多操作系统提供了图形化用户接口,用户可以使用形象的图形界面进行操作,而不需要记忆复杂的命令;
联机命令接口:又叫交互式命令接口,用户需要在命令行与计算机系统进行交互,用户说一句,系统跟着做一句,比如win系统我们常常使用的cmd;
脱机命令接口:又叫批处理命令接口,如win系统的搜索功能,搜索某个盘的某个文件。用户说一堆,系统跟着做一堆。
给软件/程序员使用的
程序接口:用户通过程序间接使用,或者通过代码,例如"hello,world"程序中调用的printf函数,底层就是调用了系统提供的服务,使得字符在显示屏上打印。
操作系统的功能和目标–作为最接近硬件的层次
需要实现对硬件机器的扩展。 没有任何软件支持的计算机称为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、更方便的机器。
通常把覆盖了软件的机器称为扩充机器,又称为虚拟机。
操作系统对硬件的扩展主要体现在:将CPU、内存、磁盘、显示器等硬件合理组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。
2 操作系统的特征
并发: 指两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,但是在微观上是交替发生的。
并行: 指两个或多个事件同一时刻同时发生。(易混淆)
考点
单核CPU 同一时刻只能执行 一个程序, 各个程序只能 并发 地执行;
多核CPU 同一时刻可以同时执行 多个程序, 多个程序可以 并行 地执行。
共享: 即资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用。
而共享有两种资源共享方式:
互斥共享方式: 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源,例如:使用QQ和微信视频,同一时间段只能将摄像头分配给其中一个进程;
同时共享方式: 系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问,例如:同时使用QQ和微信发送文件,宏观上,两边都是在同时读取并发送文件,说明两个进程都在访问硬盘资源,微观上看,两个进程交替着访问硬盘。
为什么说并发性与共享性互为存在条件?该如何理解?
答:以QQ微信同时发送文件为例,两个进程正在并发执行,需要共享地访问硬盘资源。如果失去了并发性,则系统只有一个程序正在运行,那么共享性就失去了存在的意义。如果失去共享性,则QQ微信不能同时访问硬盘资源,就无法实现同时发送文件,无法实现并发。
虚拟: 指把物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑对应物是用户感受到的。
如何理解呢? 我们知道,一个程序需要放入内存并给它分配CPU才能执行。而一个GTA5游戏需要4G运行内存,QQ需要256MB的内存,微信也要256MB内存,而假设电脑只有4GB内存,而这些程序运行需要的内存远远大于4GB,为什么可以同时运行呢?
答:这是虚拟存储器技术。实际只有4GB内存,但是在用户看来似乎远远大于4GB。
异步: 指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。只有系统拥有并发性,才有可能导致异步性!
3 操作系统的发展与分类
手工操作阶段
手工操作阶段计算过程如下图,可见有明显缺点: 用户独占全机、人机速度矛盾导致资源利用率基地!!!
批处理阶段:单/多道批处理系统
单道批处理: 引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。缓解了一定程度的人机速度矛盾,资源利用率有一定提升。 但是依然存在明显缺点: 内存中仅能有一道程序运行, 只有该程序运行结束后才能调入下一道程序。CPU有大量的时间是在等待I/O完成,资源利用率仍然低。
为了解决上述问题,采用了多道批处理系统: 每次往内存中读入多道程序,多道程序可以并发执行,共享计算机资源,资源利用率大幅提升, CPU和其他资源能保持忙碌状态,系统吞吐量增大。
但是无论是单道还是多道批处理,都没有实现人机交互,用户是无法调试程序的, 为了解决该问题,就有了分时操作系统。
分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务, 各个用户可以通过终端与计算机进行交互。
主要优点: 用户的请求可以被及时响应,解决了人机交互的问题。 允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点: 不能优先处理一些紧急任务。 不区分任务的紧急性。于是就有了实时操作系统。
实时操作系统
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的 主要特点是及时性和可靠性。
主要优点: 能够优先响应紧急任务,某些紧急任务不需时间片排队。
网络操作系统
是伴随着计算机网络发展诞生的,能把网络中各个计算机有机结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。
分布式操作系统
主要特点是 分布性和并行性。 系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成任务。
个人计算机操作系统:
如Window XP、MacOS等,方便个人使用。
4 操作系统的运行机制
4.1 特权指令与非特权指令
这里需要与cmd等命令行的指令进行区分。这里的指令指的是CPU能够看得懂的机器指令(一串二进制序列)
在CPU设计和生产时候,就划分了特权指令和非特权指令,即CPU执行一条指令前就能判断出其类型。
对于应用程序,只能使用“非特权指令”,例如加法指令,减法指令等。
而对于内核程序,操作系统内核作为“管理者”,有时会让CPU执行一些“特权指令”,如:内存清零指令。这些指令影响重大,只允许管理者,即操作系统内核来使用。