博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.操作系统概述
阅读量:3959 次
发布时间:2019-05-24

本文共 4440 字,大约阅读时间需要 14 分钟。

1.操作系统的概念、功能

操作系统是指①控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配(操作系统是系统资源的管理者)②以提供给用户和其他软件方便的接口和环境(向上层提供方便易用的服务)③它是计算机系统中最基本的系统软件(是最接近硬件的一层软件)

在这里插入图片描述

1.1作为系统资源的管理者

操作系统提供处理机管理、存储器管理、文件管理、设备管理的功能

1.2向上层提供方便易用的服务

1.2.1给普通用户使用

1.2.1.1联机命令接口

联机命令接口=交互式命令接口

特点:用户说一句,系统跟着做一句
例子:命令解释器,shell(命令解析器)

1.2.1.2脱机命令接口

脱机命令接口=批处理命令接口

特点:用户说一堆系统跟着做一堆

1.2.2给软件/程序员使用

1.2.2.1程序接口

程序接口:可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。

在这里插入图片描述

1.2.2.2系统调用

系统调用等于广义指令,系统调用类似于函数调用,是应用程序请求操作系统服务的唯一方式

1.3最接近硬件的一层软件

操作系统实现了对硬件机器的拓展

没有任何软件支持的计算机成为裸机
把覆盖了软件的机器称为扩充机器,又称之为虚拟机

2.操作系统的四个特征

并发,共享,虚拟,异步,其中并发和共享是最基本的特征,二者互为存在条件

2.1并发

并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。

并行:指两个或多个事件在同一时刻同时发生。
操作系统的并发性是指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

2.2共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

2.2.1互斥共享方式

系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源

2.2.2同时共享方式

系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的〈即分时共享)

2.3虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

2.3.1空分复用技术

如虚拟存储器技术

2.3.2时分复用技术

如虚拟处理器

2.4异步

异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

3.操作系统的发展与分类

3.1手工操作阶段

在这里插入图片描述

主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低

3.2批处理阶段

引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出

在这里插入图片描述

3.2.1单道批处理系统

在这里插入图片描述

基本特征:顺序性
主要优点:缓解了一定程度的人机速度矛盾, 资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低

3.2.2多道批处理系统

在这里插入图片描述

基本特征:制约性、间断性、共享性

主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。

主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。eg:无法调试程序/无法在程序运行过程中输入一些参数)

3.3分时操作系统

分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

在这里插入图片描述
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用 户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/ 作业服务一个时间片,不区分任务的紧急性。

3.4实时操作系统

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。 在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事 件。实时操作系统的主要特点是及时性可靠性

3.4.1硬实时系统

必须在绝对严格的规定时间内完成处理,如:导弹控制系统、自动驾驶系统

3.4.2软实时系统

能接受偶尔违反时间规定,如:12306火车订票系统

3.5其他几种操作系统

网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是 一种典型的网络操作系统,网站服务器就可以使用)

分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
个人计算机操作系统:如 Windows XP、MacOS,方便个人使用。

★4.操作系统的运行机制

4.1内核程序和应用程序

应用程序就是我们普通程序员写的程序

内核程序就是实现操作系统的程序
由很多内核程序组成了操作系统内核,或简称内核(Kernel), 内核是操作系统最重要最核心的部分,也是最接近硬件的部分

4.2特权指令和非特权指令

特权指令是指计算机中不允许用户直接使用的指令,只允许操作系统内核使用。

如:I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器、清内存、置时钟、分配系统资源、修改虚存的段表和页表,修改用户的访问权限等的指令
非特权指令是指计算机中允许用户直接使用的指令

4.3用户态和内核态

4.3.1概念

内核态又称核心态管态。处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令

用户态又称目态。处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令

CPU中有一个寄存器叫程序状态字寄存器(PSW),其中有个二进制位,1表示“内核态”,0表示“用户态”

4.3.2内核态、用户态的切换

内核态→用户态:执行一条特权指令―-修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权

用户态→内核态:由中断引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权

★5.中断和异常

5.1中断的作用

中断会使CPU由用 户态变为内核态,使操作系统重新夺回对CPU的控制权。

“中断”是让操作系统内核夺回CPU使用权的唯一途径。
如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序

5.2内中断(异常)

与当前执行的指令有关, 中断信号来源于CPU内部

5.2.1陷阱、陷入(trap)

由陷入指令引发,是应用程序故意引发的

例子 1:有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令——陷入指令(陷入指令不是特权指令,因为运行在用户态。执行“陷入指令”,意味着应用程序主 动地将CPU控制权还给操作系统内核。 “系统调用”就是通过陷入指令完成的),该指令会引发一个内部中断信号

5.2.2故障(fault)

由错误条件引起的,可能被内核程序修复。内核程序修复故障后会把 CPU使用权还给应用程序,让它继续执行下去。

例子1:缺页故障

5.2.3终止(zbort)

由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序, 而是直接终止该应用程序。

例子 1:试图在用户态下执行特权指令

例子 2:执行除法指令时发现除数为 0

5.3外中断(中断)

与当前执行的指令无关, 中断信号来源于CPU外部

例子 1:时钟中断——由时钟部件发来的中断信号(时钟部件每隔一个时间 片(如 50ms)会给CPU发送一个时钟中断信号)
例子2:I/O中断——由输入/输出设备发来的中断信号

5.4中断机制的基本原理

不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号 的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

在这里插入图片描述

★6.系统调用

“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用 程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务

6.1系统调用与库函数的区别

在这里插入图片描述

6.2什么功能要用到系统调用?

应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提 出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

在这里插入图片描述

6.3系统调用的过程

在这里插入图片描述

传递系统调用参数 → 执行陷入指令(用户态)→ 执行相应的内请求核程序处理系统调用(核心态)→返回应用程序
注意:

  1. 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
  2. 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行

7.操作系统的体系结构(了解)

在这里插入图片描述

操作系统内核需要运行在内核态
操作系统的非内核功能运行在用户态
现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储 管理、设备管理 ,变态状况如下:
在这里插入图片描述
注意:变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能
微内核优点:添加系统服务时,不必修改内核;使系统更可靠

8.补充

1.计算机开机后,操作系统最终被加载到RAM

2.中断技术使得多道批处理系统和I/O设备可与CPU 并行工作
3.在IBM-PC(个人计算机)中,操作系统称为微型计算机操作系统
4.单核CPU也能支持多任务操作系统(能够支持多个进程同时运行)
5.通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。
6.用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入( trap )指令
7.计算机通过硬件中断机制完成由用户态到核心态的转换。
★8.在用户态发生:中断(包括缺页、I/O),系统调用(广义指令)
      在核心态发生:进程调度
      在用户态执行:命令解释器
      核心态下执行:中断(包括缺页、I/O),系统调用(广义指令),进程调度,置时钟指令

转载地址:http://vzmzi.baihongyu.com/

你可能感兴趣的文章
什么是RUP
查看>>
什么是UML(UML总结)
查看>>
UML基础与应用系列文章汇总
查看>>
C#方法重载(overload)方法重写(override)隐藏(new)
查看>>
javascript实现滚动图片
查看>>
css+div练手-工作室
查看>>
CSS+DIV布局之道
查看>>
CSS+DIV练手-公司
查看>>
CSS+DIV练手—鲜花展
查看>>
深入浅出JavaScript(1)—ECMAScript
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>
Asp.Net+Jquery.Ajax详解1-开篇
查看>>
我的软件工程之路(四)—半年总结
查看>>
Asp.Net+Jquery.Ajax详解5-$.getScript
查看>>
Asp.Net+Jquery.Ajax详解6-$.ajaxSetup
查看>>
Asp.Net+Jquery.Ajax详解7-全局Ajax事件
查看>>
J2EE总结(宏观把握)
查看>>
什么是Dojo?与Jquery宏观对比,结果如何?
查看>>
Asp.Net+Jquery.Ajax详解8-核心$.ajax
查看>>
我的工作日志2
查看>>