目录
1.2操作系统的发展与分类
1.操作系统的分类及其特征优劣
2.操作系统的发展历程
1.3 操作系统的运行机制和体系结构
1.3.1操作系统的运行机制和体系结构
1.操作系统的结构设计
2.操作系统的运行机制和体系结构
3.操作系统内核在计算机系统中的层次结构
4.操作系统用户态和核心态的转换
1.3.2中断和异常
1.3.3系统调用
1.系统调用知识框架图
2.系统调用和库函数的区别
3.系统调用的执行过程
上一篇:【王道操作系统】第一章 操作系统概述(下)——操作系统的发展、分类、运行机制、体系结构
下一篇:
1.2操作系统的发展与分类 1.操作系统的分类及其特征优劣
文章图片
1、手工操作阶段
- 在计算机发展的初期,没有操作系统,人们只能依靠手工操作来使用计算机。
2、批处理阶段
- 工人依照数据在纸上打孔,交给机器计算,因为计算机速度快,手工打孔慢,就造成了资源的浪费。
- 单道批处理系统
- 工作方式:引入了脱机输入/输出技术 ,并由监督程序负责控制作业输入和输出,但在工作期间只能对单份作业进行处理的系统。
- 优点:缓解了一定程度的人机速度矛盾。
- 缺点:资源利用率低。内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。
- 工人打孔后将“打孔纸” 通过卫星机/外围机包装到一盘“磁带”里。
- 再把一盘接着一盘包装好的 “磁带” 独立地送入到计算机进行计算。
- 多道批处理系统:
- 工作方式:引入了脱机输入/输出的技术 ,并由监督程序负责控制作业输入和输出。在工作期间能对多份作业同时进行处理的系统。
- 优点:解决了单道批处理系统资源利用率很低的缺点。多道程序并发执行,共享计算机资源,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大
- 缺点:用户响应时间长,没有人机交互功能。
- 用户提交作业后就只能等待计算机处理完成,中间不能控制自己的作业执行,如无法调试程序、无法在程序运行过程中输入一些参数。
3、分时操作系统
- 工人打孔后将“打孔纸” 通过卫星机/外围机包装到一盘“磁带”里。
- 再把一盘接着一盘包装好的 “磁带” 耦合地送入到计算机进行计算。
- 工作方式:计算机以时间片为单位,轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
- 优点:解决了多道批处理系统不能人机交互的缺点。用户请求可以被即时响应,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
- 缺点:不能优先处理紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
- 理解:
- 就像有4个人(①②③④)在玩电脑,他们用的是同一个分时操作系统。
- 该系统会按照 “①②③④①②③…” 的顺序轮流分 50ms 给每个用户使用。
- 就像有4个人(①②③④)在玩电脑,他们用的是同一个分时操作系统。
- 工作方式:实时反映(分时操作系统更呆板)。系统收到外部信号后立即处理,并有严格的时限。具有及时性和可靠性。
- 优点:能够优先响应紧急任务。紧急任务不需时间片排队。
- 分类:硬实时操作系统(时限严格)和软实时操作系统(接受偶尔违反时间规定)。
- 网络操作系统:伴随着计算机网络的发展而诞生,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
- 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
- 个人计算机操作系统:如 Windows XP、MacOS,方便个人使用。
文章图片
2.操作系统的发展历程
文章图片
1.2Over!
1.3 操作系统的运行机制和体系结构 1.3.1操作系统的运行机制和体系结构 1.操作系统的结构设计
文章图片
1、整体式结构
定义:又称模块组合法,是基于结构化程序设计的软件结构设计方法。
设计思想:
①将模块作为操作系统的基本组成单位。
②按照功能需要而不是根据程序和数据的特性把整个系统分解为若干模块。
③模块可以再进一步分成子模块。
④每个模块具有一定的独立功能,多个模块协作完成某个功能。
⑤各模块分别设计、编码、调试。
⑥所有模块连结成一个完整的系统。
优点:
- 结构紧密、组合方便,灵活性大。对不同环境和用户的不同需求,可以组合不同模块来满足。
- 每个功能可以用最有效的算法和调用其他模块中的过程来实现,系统效率较高。
- 设计及编码可齐头并进,加快操作系统的研制过程。
- 模块独立性差,模块之间牵连多。
- 形成了复杂的调用关系,甚至循环调用。实例:A模块要调用B,但B又要调用C,而C却要调用A,这样可能会形成死循环。
- 系统结构不清晰,正确性、可靠性降低。
- 系统功能的增、删、改十分困难。(模块之间可能存在调用,修改可能会有牵扯)
设计思想:
①操作系统划分为内核和若干模块。( 这里的 “内核” 体现在下面的第三张图中)
②模块按功能的调用次序排列成若干层次。
③各层之间只能是单向依赖或单向调用关系。
单向依赖:上层只能调用下层,而下层不能调用上层。如下图,硬件上面有若干个层次,进程管理支撑存储管理,存储管理再支撑设备管理…依次类推。
文章图片
类型:
- 全序:各层之间是单向依赖的,而且层内模块也保持独立,没有联系。
- 半序:各层之间是单向依赖的,但层内允许有相互调用或通信的关系。
- 把整体问题局部化。
- 层次结构和单向依赖性,使得模块之间的依赖和调用关系更为清晰规范。
Linux操作系统的层次结构:
文章图片
①Linux内核由模块组成。
- Linux操作系统的整体是层次式结构。
- 不过Linux操作系统的内核又是一种整体式结构(在下图中的 “单内核” 所包含的区域)。因为在内核里面,它包含了多个模块,且多个模块彼此之间还可以互相调用,并没有一个非常清晰的层次关系。
- Linux操作系统内核的特点:
②每个模块可以单独编译。
③模块用链接程序连在一起成为目标程序。
Q:为什么在Linux的内核中要采用整体式结构呢?3、虚拟机结构:可看成一种层次式结构
A:因为这样的话,它有利于不同的人参与不同过程的开发,并允许任何人对其进行修改和完善。所以说,Linux内核是基于过程的开放式结构。(因为它是开源的)
定义:
- 虚拟化是计算机资源的抽象方法。
- 虚拟机是通过软件模拟的、运行在隔离环境中的计算机系统。
- 实体计算机中能够完成的工作在虚拟机中都能够实现。
①在裸机上层层扩展软件。
②可采用层次化结构的设计方法来实现。
③经过虚拟化后的逻辑资源对用户隐藏了不必要的细节。(这可以使程序员在虚拟机结构的操作系统中,更快地开放出各种各样的应用程序)
4、客户/服务器结构
基本思想:操作系统被分成两大部分。
①运行在用户态并以客户/服务器方式活动的进程。
②运行在核心态的内核。
客户/服务器这个结构,事实上是来自于计算机网络里面的一种结构。即在网络里面,有客户机和服务器,客户机通过网络连接到服务器上,去索取资源/服务。服务器就给客户机提供服务。特点:
这就是一种 “服务与被服务”的关系。操作系统就借用这种思想,将这种思想应用到操作系统的设计和构建中,也就是有一部分进程是客户进程,有一部分是服务进程,中间还有一个内核来“调度”。
①除内核外,操作系统的其他部分被分成若干相对独立的进程,每一个进程实现一类服务,称服务器进程。用户进程也在该层,并以客户/服务器方式活动。
②客户进程发出消息,内核将消息传送给服务器进程,服务器进程执行客户提出的服务请求,在满足客户的要求后在通过内核发行消息把结果返回给用户。
5、微内核结构
定义:
①把操作系统中的内存管理、设备管理、文件管理等功能模块尽可能地从内核中分离出来。
【操作系统|【王道操作系统】第一章 操作系统概述(下)——操作系统的发展、分类、运行机制、体系结构】②在内核中只保留最基本的功能,使内核变得简洁可靠。(出Bug的概率就减小了)
优点:
- 充分的模块化,可以独立地更换任一模块而不影响其他模块,从而方便第三方设计、开发各个模块。
- 未被使用的模块功能不必运行,大幅度减少了系统的内存需求。
- 增强了可移植性,移植时主要对微内核部分进行修改即可,减轻移植工作量。
客户/服务器及内核结构:2.操作系统的运行机制和体系结构
文章图片
解释:
①“用户进程” 和 “操作系统服务进程” 都在内核之外。
②内核,即图中的 “微内核”。
③用户进程可通过内核,把请求发给服务进程而去索取服务。
④服务进程再通过内核把服务信息发送给用户进程。
⑤微内核看上去像一个 “中间商人”。
文章图片
3.操作系统内核在计算机系统中的层次结构
文章图片
操作系统结构类比:4.操作系统用户态和核心态的转换 遗留问题:用户态、核心态之间的切换是怎么实现的?
- 操作系统的体系结构问题与企业的管理问题很相似。
- 内核就是企业的管理层负责一些重要的工作。只有管理层才能执行特权指令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接。
- 大内核:企业初创时体量不大,管理层的人会负责大部分的事情。优点是效率高; 缺点是组织结构混乱,难以维护。
- 微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。优点是组织结构清晰,方便维护; 缺点是效率低。
答:
- “用户态→核心态”是通过中断实现的,并且中断是唯一途径。
- “核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
1.3.2中断和异常
文章图片
1.3.2Over!
1.3.3系统调用 1.系统调用知识框架图
文章图片
2.系统调用和库函数的区别
文章图片
3.系统调用的执行过程
文章图片
第一章 over !?
上一篇:【王道操作系统】第一章 操作系统概述(下)——操作系统的发展、分类、运行机制、体系结构
下一篇:
推荐阅读
- Linux|【Linux篇】第四篇——Linux环境下的工具(二)(make/Makefile+进度条小程序)
- 嵌入式面试问题系列|常见嵌入式面试题之Linux操作系统篇 ——第2期
- 操作系统学习笔记|Linux操作系统学习笔记(五)进程的核心——task_truct
- linux|linux 常用命令大全及其详解_Linux常用命令大全(非常详细!)
- linux-驱动|NXP LS1046A及飞腾新四核 FT2004 PCIE EP端LINUX设备驱动开发
- linux|linux 26,Linux常用26条命令
- centos虚拟机开机icmp_seq=1 Destination Host Unreachable
- 为什么服务器端都使用Linux系统
- Linux服务器|为什么要选择Linux