操作系统(1):计算机系统概述

概念和功能

什么是操作系统

2.OS 作为计算机系统资源的管理者

在一个计算机系统中,通常都含有各种各样的硬件和软件资源。归纳起来可将资源分 为四类:处理器、存储器、I/O 设备以及信息(数据和程序)。相应地,OS 的主要功能也正是 针对这四类资源进行有效的管理,即:处理机管理,用于分配和控制处理机;存储器管理, 主要负责内存的分配与回收; I/O 设备管理,负责 I/O 设备的分配与操纵;文件管理,负责 文件的存取、共享和保护。可见,OS 的确是计算机系统资源的管理者。事实上,当今世界 上广为流行的一个关于 OS 作用的观点,正是把 OS 作为计算机系统的资源管理者。

值得进一步说明的是,当一个计算机系统同时供多个用户使用时,用户对系统中共享 资源的需求(包括数量和时间)可能发生冲突,为了管理好这些共享资源(包括硬件和信息)的 使用,操作系统必须记录下各种资源的使用情况,对使用资源的请求进行授权,协调诸用 户对共享资源的使用,避免发生冲突,并计算使用资源的费用等

2.OS 作为用户与计算机硬件系统之间的接口,为上层提供了方便易用的服务

OS 作为用户与计算机硬件系统之间接口的含义是:OS 处于用户与计算机硬件系统之间,用户通过 OS 来使用计算机系统。或者说,用户在 OS 帮助下,能够方便、快捷、安全、 可靠地操纵计算机硬件和运行自己的程序。应注意,OS 是一个系统软件,因而这种接口是软件接口。图 1-1 是 OS 作为接口的示意图。由图可看出,用户可通过以下三种方式【对应不同的接口】使用计算机。

 (1) 命令方式。这是指由 OS 提供了一组联机 命令接口,以允许用户通过键盘输入有关命令来 取得操作系统的服务,并控制用户程序的运行。

 (2) 系统调用方式。OS 提供了一组系统调用, 用户可在自己的应用程序中通过相应的系统调 用,来实现与操作系统的通信,并取得它的服务。

 (3) 图形、窗口方式。这是当前使用最为方便、最为广泛的接口,它允许用户通过屏幕 上的窗口和图标来实现与操作系统的通信,并取得它的服务。

这样就可以解释为什么 用户和操纵系统 有一个直接相连的部分:因为可以通过GUI和命令接口直接调用! 也可以通过应用软件进行系统调用!

狭义的用户接口可能不包含GUI

3.OS 实现了对机器硬件的扩展-作为最接近硬件的层次

2 操作系统的特性

2.1 并发

在操作系统里的定义:

注意单核、和多核cpu!!!

2.2 共享

有时侯同时共享 在微观上确实也是同时的;比如打游戏的时候听歌 扬声器里有手机的音效和歌曲!

并发和共享的关系

2.3 虚拟

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

2.4 异步

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

串行:第一个程序运行完再运行第二个程序-这样第一个结束之后心就会就会被归还!就不会等待~不会走走停停!

3 操作系统的发展和分类

3.1无操作系统的计算机系统

(1)手工操作阶段

从第一台计算机诞生(1945 年)到 20 世纪 50 年代中期的计算机,属于第一代计算机。此 时的计算机是利用成千上万个真空管做成的,它的运行速度仅为每秒数千次,但体积却十 分庞大,且功耗也非常高。这时还未出现 OS。计算机操作是由用户(即程序员)采用人工操 作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带(或 卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计 算机运行。当程序运行完毕并取走计算结果之后,才让下一个用户上机。这种人工操作方 式有以下两方面的缺点:  

(1) 用户独占全机。此时,计算机及其全部资源只能由上机用户独占。 

(2) CPU 等待人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU 及内存等 资源是空闲的。

可见,人工操作方式严重降低了计算机资源的利用率,此即所谓的人机矛盾。随着 CPU 速度的提高和系统规模的扩大,人机矛盾变得日趋严重。

为了解决这个问题:

3.2 有操作系统阶段

监督程序 是操作系统的雏形!

(2)【1】批处理阶段--单道批处理系统

脱机也就是运用了io的方式让电脑操作不是只通过主机来操作数据,认识引进了磁盘的类似概念

为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾,20 世纪 50 年代末出现 了脱机输入/输出(Off-Line I/O)技术。该技术是事先将装有用户程序和数据的纸带(或卡片) 装入纸带输入机(或卡片机),在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到 磁带上。当 CPU 需要这些程序和数据时,再从磁带上将其高速地调入内存。 

脱机 I/O 方式的主要优点:

 1.减少了 CPU的空闲时间。装带(卡)、 卸带(卡)以及将数据从低速 I/O 设备送到高 速磁带(或盘)上,都是在脱机情况下进行 的,并不占用主机时间,从而有效地减少了 CPU 的空闲时间,缓和了人机矛盾。 

2.提高了 I/O 速度。当 CPU 在运行中需要数据时,是直接从高速的磁带或磁盘上将 数据调入内存的,不再是从低速 I/O 设备上输入,极大地提高了 I/O 速度,从而缓和了 CPU 和 I/O 设备速度不匹配的矛盾,进一步减少了 CPU 的空闲时间。

单道批处理系统:通常是把一批作业以脱机 方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个接一个地连续处理。其自动处理过程是:首先,由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业。当该作业处理完成时,又把控制权交还给监督程序,再由监督程序把磁带(盘)上的第二个作业调入内存。计算机系统就这样自动地一个作业一个作 业地进行处理,直至磁带(盘)上的所有作业全部完成,这样便形成了早期的批处理系统。由于系统对作业的处理都是成批地进行的,且在内存中始终只保持一道作业,故称此系统为 单道批处理系统(Simple Batch Processing System)。

单道批处理系统的特征:

(1) 自动性。在顺利情况下,在磁带上的一批作业能自动地逐个地依次运行,而无需人工干预。

(2) 顺序性。磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序,在正常情况下应完全相同,亦即先调入内存的作业先完成。

 (3) 单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入 内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。

(2)【2】批处理阶段--多道批处理系统

多道程序设计的基本概念:

在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备 队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。

多道批处理系统的优缺点

(1) 资源利用率高。由于在内存中驻留了多道程序,它们共享资源,可保持资源处于忙 碌状态,从而使各种资源得以充分利用。

(2) 系统吞吐量大。系统吞吐量是指系统在单位时间内所完成的总工作量。能提高系统吞吐量的主要原因可归结为:第一,CPU 和其它资源保持“忙碌”状态; 第二,仅当作业 完成时或运行不下去时才进行切换,系统开销小。

(3) 平均周转时间长。作业的周转时间是指从作业进入系统开始,直至其完成并退出系 统为止所经历的时间。在批处理系统中,由于作业要排队,依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。

(4) 无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,这对修改和调试程序是极不方便的。

(3) 分时操作系统


分时系统(Time Sharing System)与多道批处理系统之间有着截然不同的性能差别,它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。它被经常应用于查询系统中,满足许多查询用户的需要。简单来说就是把一个系统再多用户访问的时候给每个用户分一段时间在一段时间没有做完这个任务,也把时间给下一位用户直到循环回来继续执行。


分时系统的特征

 (1) 多路性。允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服 务。宏观上,是多个用户同时工作,共享系统资源;而微观上,则是每个用户作业轮流运 行一个时间片。多路性即同时性,它提高了资源利用率,降低了使用费用,从而促进了计 算机更广泛的应用。 

(2) 独立性。每个用户各占一个终端,彼此独立操作,互不干扰。因此,用户所感觉到 的,就像是他一人独占主机。

(3) 及时性。用户的请求能在很短的时间内获得响应。此时间间隔是以人们所能接受的 等待时间来确定的,通常仅为 1~3 秒钟。

(4) 交互性。用户可通过终端与系统进行广泛的人机对话。其广泛性表现在:用户可以请求系统提供多方面的服务,如文件编辑、数据处理和资源共享等。

缺点:不能优先处理紧急任务!

(4)实时系统

所谓“实时”,是表示“及时”,而实时系统(Real Time System)是指系统能及时(或即时) 响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一 致地运行。例如自动驾驶要在指定的时间内完成任务不然就会出问题

在实时系统中必然存在着若干个实时任务,这些任务通常与某个(些)外部设备相关,能 反应或控制相应的外部设备,因而带有某种程度的紧迫性。可从不同的角度对实时任务加 以分类。

1) 按任务执行时是否呈现周期性来划分

(1) 周期性实时任务。外部设备周期性地发出激励信号给计算机,要求它按指定周期循 环执行,以便周期性地控制某外部设备。 

(2) 非周期性实时任务。外部设备所发出的激励信号并无明显的周期性,但都必须联系 着一个截止时间(Deadline)。它又可分为开始截止时间(某任务在某时间以前必须开始执行) 和完成截止时间(某任务在某时间以前必须完成)两部分。


2) 根据对截止时间的要求来划分

(1) 硬实时任务(Hard real-time Task)。系统必须满足任务对截止时间的要求,否则可能 出现难以预测的结果。 

(2) 软实时任务(Soft real-time Task)。它也联系着一个截止时间,但并不严格,若偶尔 错过了任务的截止时间,对系统产生的影响也不会太大。

(5)其他操作系统

3.1 操作系统的运行机制

3.2 中断和异常

陷入指令不是特权指令,只在用户态时进行的!

收到中断信号就又用户态转为内核态!处理中断的内核程序!在处理的过程中发现 程序1已经运行了50ms了,这时就会让另一个应用程序再cpu上运行!

两个运行程序再中断机制下实现了并发运行!

3.3 系统调用

含义:

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

作用

系统调用和库函数的区别

编程语言(c,java)中里边有很多库函数,其实它们(不是所有的库函数)就是将系统调用封装起来,隐藏一些细节,使上层进行系统调用更加方便。

系统调用的过程

系统调用发生在用户态,对系统调用的处理发生在核心态。

执行陷入指令(自陷指令或访管指令)会处理内中断,使处理器(CPU)从用户态进入核心态。

1:传参指令(指明系统调用的类型)

可能不止一个传参指令!

2:陷入指令

主动把cpu的控制权交给操作系统 请求操作系统的服务!

然后cpu从用户态转为 内核态!!处理系统调用入口程序 【相当于是 中断处理】

3:根据参数进行系统调用

4:系统调用结束之后 会回到用户态 接着调用应用程序!

总结:

陷入指令不是特权指令 运行在用户态!

陷入指令=trap指令=访管指令

4 操作系统的体系结构

含义

操作系统的内核应该怎末设计这个问题!

有的操作系统不把 下面那个不涉及硬件的放在操作系统的内核里 

大内核 微内核

由于内核划分功能的不同,内核分为大内核和微内核。

所有的操作系统功能都在内核里的叫做大内核;如果只保留与硬件关系最紧密的部分 就叫做微内核!

大内核和微内核的优缺点

大内核:整个内核的各种功能之间是可以相互调用的!跟普通的调用函数一样!

微内核:功能和功之间的调用没那么方便了,只能通过消息传递的方式进行:【微内核里有一个功能正好就是“进程通信!!!”】

类比:

操作系统的体系结构问题与企业的管理问题很相似。

内核就是企业的管理层,负责一些重要的工作。只有管理层才能执行特权指令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接

大内核:企业初创时体量不大,管理层的人会负责大部分的事情。

优点是效率高;缺点是组织结构混乱,难以维护。

微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。

优点是组织结构清晰,方便维护;缺点是效率低。

分层结构:

只能调用更低的一个 不可以跨层调用!

从低到高一层一层的调试 清晰明朗!

层与层之间的调用接口是一开始就设计好的 不变的 所以原有的两层之间新加一层也是非常ok的!

很难严格的分层 A和B有可能是双箭头!比如:进程--内存

模块化:

主模块最核心的那些模块!没有这些模块进程无法运行!

可加载:动态加载 有没有都不影响系统的运行!比如设备的驱动程序!只是影响系统的可拓展性,锦上添花的东西

优点:可以直接调用其他模块,但是微内核就需要消息传递 不能直接调用!

相互调用的比较多 因此模块间的接口 未必合理实用!

调试的时候:A出错了到底是与A通信的B出错了还是自己出错了说不来哦,但是分层结构就很好调试 只要保证下层是没问题的 上层出问题一定是上层的问题!

外核

未经抽象的硬件资源:磁盘、内存的存储空间。

普通的操作系统给进程分配的内存空间是经过抽象和虚拟化的;分的文件存储空间和外存空间也是抽象的。对于进程来说 感觉文件好像是连续的地址空间,但很有可能不同的块是在磁盘的不同位置存放的!【虚拟地址通过“映射层”转换成 真实存放的地址!】

如果用户知道我要经常访问 那么就会向外核申请一个未经抽象的资源 这样访问起来就不用找 性能比较高!!!

小结各种操作系统的特性

5 操作系统的引导

什么是操作系统引导

操作系统引导通俗理解:当电脑开机时,让操作系统在我们的电脑上运行起来。

定义:操作系统内核装入内存并启动系统的过程。系统引导通常是由一个被称为启动引导程序的特殊代码完成的,它位于系统ROM中,用来完成定位内核代码在外存的具体位置、按照要求正确装入内核至内存并最终使内核运行起来的整个系统启动过程。该过程中,启动引导程序要完成多个初始化过程,当这些过程顺利完成后才能使用系统的各种服务。这些过程包括初始引导、内核初始化、全系统初始化。

磁盘里边有哪些相关数据

一个新磁盘是空的,安装到电脑的主板上之后我们可以 在这个磁盘里安装操作系统。一般操作系统是安装在C盘里面。安装了操作系统之后,磁盘里面的相关数据如下:


(1)主引导记录(MBR)

定义:主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。
  tips:扇区,是指磁盘上划分的区域。 磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,硬盘的读写以扇区为基本单位。

主引导扇区由三个部分组成(共占用512个字节):

磁盘引导程序(446 bytes) Master boot routine/MBR
可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。
磁盘分区表(16 bytes) Disk partition table/DPT
由四个分区表项构成(每个16个字节)。负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。这个分区表其实就是一个数据结构。那这个数据结构里边说明了在你的这个磁盘当中,每一个盘每一个分区。分别占多大的空间以及每个分区的地址范围
结束标志(2 bytes) identification code
其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。

(2)活动分区(一般是C盘)

如果C盘里安装了操作系统,并且会使用C盘来启动操作系统,则C盘被称为这个磁盘的活动分区。

C盘又可以分为:

分区引导记录(Partition Boot Record),操作系统的引导过程的一个环节。

操作系统引导的过程


操作系统启动时顺序 BIOS -> MBR -> DPT[分区表] -> PBR-> 寻找根目录下
NTLDR(XP)/bootmgr(WIN7/Vista)/grldr(Grub)/btldr.mbr(BootLink) 等可用于引导的程序。

①CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进代硬件自检再开机)
ROM引导程序通常是存在一个特定的位置,是固定不变的,CPU从这个位置开始执行。通常ROM引导程序通常会进行硬件的自检,比如有没有插磁盘、有没有插内存条等等。BIOS(全称:Basic Input Output System,中文名:基本输入输出系统)是在通电引导阶段运行硬件初始化,以及为操作系统和程序提供运行时服务的固件。它是一组固化到计算机内主板上一个ROM芯片上的程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
②将磁盘的第一块――主引导记录(MBR)读入内存,执行磁盘引导程序,扫描分区表(DPT)
③从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录(PBR),执行其中的程序
④从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作
Windows系统的启动管理器的位置:C:\Windows\Boot

tips:完整的操作系统初始化程序(启动管理器)可以在根目录C:\Windows下找到
④从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作 这个步骤
本质上就是从根目录C:\Windows出发找到操作系统初始化程序C:\Windows\Boot目录下的程序

6 虚拟机

传统计算机

 在虚拟机管理程序成为主流之前,大多数物理计算机一次只能运行一个操作系统 (OS)。这使得它们非常稳定,因为计算硬件只需处理来自该操作系统的请求。

这种方法的缺点是浪费资源,如果这台电脑的硬件很好 ,想要租给别人使用 ,那么两个用户的服务器必须放在同一个操作系统上【两个应用在一个服务器上 会相互影响 相互争夺操作系统管理的资源 有安全隐患】有一种解决方法是:让另一个应用挪到凌哥哥物理机器上这样就不会影响了!! 【但是 本来一个一个硬件就可以支持两个 这样又会造成资源的浪费】因为操作系统不能始终充分利用计算机的所有能力。

虚拟机的基本概念

定义:虚拟机时一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。

通俗理解:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(virtual machine,VM),每个虚拟机器都可以独立运行一个操作系统。
同义术语:虚拟机管理程序/虚拟机监控程序(Virtual Machine Monitor/Hypervisor )

虚拟机管理程序可是一个小型软件层,可使多个操作系统实例同时运行,共享相同的物理计算资源。这一过程被称为虚拟化,操作系统实例被称为虚拟机 (VM),即物理计算机的软件模拟。

虚拟机管理程序也称为虚拟机监视器 (VMM),在这些虚拟机并行运行时对其进行管理。              它将虚拟机在逻辑上相互分离,为每个虚拟机分配自己的底层计算能力、内存和存储切片。这可以防止虚拟机相互干扰;因此,例如,如果一个操作系统崩溃或安全受到损害,其他操作系统仍可以继续运行。

虚拟机管理程序(VMM)的分类

虚拟机管理程序(VMM)可以分为两类:第一类虚拟机管理程序和第二类虚拟机管理程序。

(1)第一类虚拟机管理程序

第 1 类虚拟机管理程序直接在底层计算机的物理硬件上运行,把总的硬件资源划分成多个部分给各个虚拟机来使用。虚拟机上可以安装各自的操作系统,运行在硬件之上 直接管理硬件分配硬件资源。【cpu划分:通过是时间片;磁盘和内存:直接划分】

因此,第 1 类虚拟机管理程序也被称为裸机虚拟机管理程序。第 1 类虚拟机管理程序取代主机操作系统。

(2) 第二类虚拟机管理程序

第 2 类虚拟机管理程序不能直接在底层硬件上运行。是运行在宿主操作系统上面 相反,它是作为操作系统中的应用程序运行。

第 2 类虚拟机管理程序很少出现在基于服务器的环境中。相反,它们适用于需要运行多个操作系统的个人电脑用户。例如,工程师、分析恶意软件的安全专业人员,以及需要访问其他软件平台上才有的应用程序的企业用户。

(3) 两类虚拟机管理程序的对比!!!!

运行模式:

第一类:

这样的好处是:当虚拟机运行特权指令ring0 和ring2的时候 VMM不用管 直到需要运行ring0的时候管一下

第二类:

第二类虚拟机管理程序一部分运行在用户态,一部分运行在内核态。运行在内核态的那一部分是以虚拟机驱动的方式加载到操作系统内核中。用户进程的write系统调用会被虚拟机管理程序截获,然后虚拟机管理程序进行一些处理,代替它向底层的宿主操作系统(Host OS)发出write系统调用来请求底层宿主操作系统的服务。

这样就会导致每次都要以HostOs作为中介! 性能就更

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值