1-计算机系统概述(OS)

一.操作系统的基本概念

操作系统是控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。

(一)操作系统的特征

并发、共享、虚拟、异步。其中并发和共享是操作系统两个最基本的特征,二者互为存在条件。

1.并发
两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。

2.共享
系统中的资源可供多个并发执行的进程使用
(1)互斥共享方式
在一段时间内只允许一个进程访问该资源
(2)同时访问方式
系统中的某些资源,允许一个时间段内,由多个进程“同时”对他们进行访问(宏观上同时,微观上交替)

3.虚拟
把一个物理上的实体变为若干逻辑上的的对应物

  • 虚拟存储技术:通过多道程序设计技术,采用让多道程序并发执行的方式,来分时使用一个处理器。分为时分复用技术(如处理器的分时共享)和空分复用技术(如虚拟存储器)
  • 虚拟存储器:采用虚拟存储技术将一台机器的物理存储器变成虚拟存储器,以便从逻辑上扩充存储器的容量。

4.异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进(争抢资源时不一定谁停下来等待)

(二)操作系统的目标和功能

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

2.向上层提供方便易用的服务/接口

(1)直接给用户使用的:GUI、命令接口

  • GUI(图形用户界面):用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。
  • 命令接口:
    ①联机命令接口/交互式命令接口:如cmd命令。用户说一句,系统做一句
    ②脱机命令接口/批处理命令接口:如将命令罗列在.bat文件中,系统依次执行每条语句。用户说一堆,系统做一堆

(2)给软件/程序员使用的:程序接口
程序接口由一组系统调用组成,编程人员可以使用它们来请求操作系统服务。如:C语言输出hello world时printf函数的底层使用了操作系统提供的显示相关的系统调用。

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

(一)手工操作阶段

程序员通过在纸带上打孔的方式运行程序,手工操作时间过长,人机速度矛盾导致效率极低。

(二)批处理阶段

1.单道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业。

程序员将程序放到纸带机上,由外围机将程序放到磁带上,计算机通过磁带读取程序,由监督程序负责自动从磁带中输入输出数据。

  • 优点:在一定程度上缓解了人机速度矛盾,资源利用率有所提升
  • 缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
    在这里插入图片描述
    在这里插入图片描述

2.多道批处理系统
多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种软/硬件资源。

特点:多道、宏观上并行、微观上串行
优点:资源利用率高,系统吞吐量大
缺点:用户响应时间较长,不提供人机交互能力

(三)分时操作系统

把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续执行。由于计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。

特点:同时性、交互性、独立性、及时性

①同时性:允许多个终端用户同时使用一台计算机
②交互性:用户能够方便的与系统进行人机对话,从而直接控制程序运行
③独立性:系统中多个用户可以彼此独立地进行操作,互不干扰
④及时性:用户请求能在很短时间内获得响应

缺点:不能优先处理紧急任务,完全公平。因此诞生了实时操作系统

(四)实时操作系统

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。

特点:及时性、可靠性

分类:硬实时系统(必须在绝对严格的规定时间内完成处理,eg.火箭发射)、软实时系统(能接受偶尔违反时间规定,eg.12306)

三.操作系统的运行环境

在这里插入图片描述

1.内核态/核心态/管态 & 用户态/目态

操作系统内核作为“管理者”,可能会让CPU执行一些特权指令,不正确使用特权指令可能影响其他程序正常运行,为了让CPU知道此时正在执行的指令是应用程序的指令还是内核程序的指令,引出了内核态和用户态,并通过PSW(程序状态字寄存器)中的某个二进制位确定当前状态
(1)内核态:正在运行的是内核程序,此时可以执行特权指令
(2)用户态:正在运行的是应用程序,此时只能执行非特权指令
(3)转化
①内核态→用户态:执行一条特权指令,修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权
②用户态→内核态:由“中断”引发,硬件自动完成CPU状态转换过程,触发中断信号意味着操作系统将强行夺回CPU使用权

  • 处理器为什么要区分核心态和用户态两种操作方式?在什么情况下进行两种方式的切换?
    区分执行态的主要目的是保护系统程序。用户态到核心态的转换发生在中断产生时,而核心态到用户态的转换则是在中断返回用户程序时。

2.中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

中断处理的过程:关中断(CPU执行了关中断指令之后,就不再例行检查中断信号,直到执行开中断指令之后才会恢复检查)→保存断点→中断服务程序寻址→保存现场和屏蔽字→开中断→执行中断服务程序→关中断→恢复现场和屏蔽字→开中断、中断返回

在这里插入图片描述

(1)内中断/异常
与当前执行的指令有关,中断信号来源于CPU内部

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

②终止。由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终止该应用程序。如:参数非法(整数除0)、非法使用特权指令(试图在用户态下执行特权指令。在用户态发现特权指令,触发中断信号,拒绝执行该指令,并转变为内核态,执行处理中断信号相关的内核程序)

③陷入指令/trap指令/访管指令。陷入指令不是特权指令。应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令陷入指令,该指令会引发一个内部中断信号,CPU转向中断信号相应的处理程序进行处理。执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。 系统调用是通过陷入指令完成的。

  • 访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识的使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
  • 为什么要在程序中引入访管指令呢?
    用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,就要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
  • 处于用户态的用户程序使用访管指令时,系统根据访管指令的操作数执行访管中断处理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。

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

①时钟中断。时钟部件每隔一段时间给CPU发一个中断信号,通过时钟中断信号实现多道程序并发运行。
②I/O中断。由输入/输出设备发来的中断信号

CPU在执行指令时会检查是否有异常(内中断)发生,CPU在每个指令结束的时候都会检查是否有外中断信号。不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

在这里插入图片描述

3.系统调用

系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中。系统调用是通过陷入指令完成的。

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

  • 为什么要系统调用?
    凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
  • 说明库函数与系统调用的区别和联系
    库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常比系统调用的高。因为使用系统调用时,需要上下文的切换及状态的转换(由用户态转向核心态)

四.操作系统的体系结构

(一)内核

在这里插入图片描述

  • 原语
    由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。
    特点:
    (1)处于操作系统的最底层,是最接近硬件的部分
    (2)这些程序的运行具有原子性,其操作只能一气呵成
    (3)这些程序的运行时间都较短,而且调用频繁

(二)大内核 & 微内核

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(三)操作系统结构

在这里插入图片描述

(四)操作系统引导

①CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
②将磁盘的第一块主引导记录读入内存,执行磁盘引导程序,扫描分区表
③从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
④从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作

在这里插入图片描述

(五)虚拟机

虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine,VM),每个虚拟机器都可以独立运行一个操作系统。

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡__卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值