OS-简介

简介

一、英语简写介绍

GUI :Graphical User Interface 图形用户界面

GPU :Graphics Processing Unit 图形处理器

CTSS : Compatible Time Sharing System 兼容分时系统

PDA :Personal Digital Assistant 个人数字助理

PSW :Program Status Word 程序状态字

RAM :Random Access Memory 随机访问存储器

ROM :Read Only Memory 只读存储器

EEPROM :Electrically Erasable PROM 电可擦除可编程ROM

SSD :Solid State Disk 固态硬盘

MMU : Memory Management Unit 存储器管理单元

AT :Advanced Technology IBM第二代个人计算机高级技术

ATA :AT Attachment 高级技术附件

SATA :Serial ATA 串行高级技术附件

BIOS :Basic Input Output System 基本输入输出系统

IC : 集成电路

二、基本组成

底层硬件hardware

系统程序system programs(如Windows的office系列)

应用程序app

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iNuglKzL-1642306228676)(C:\Users\林颐\Desktop\笔记\图片库\QQ图片20220110085439.png)]

大型机会有多用户接入。(类似云平台)

硬件简介

硬件特点

多个程序同时运行。提高计算机执行效率。

但是为什么我感觉是没有多线程呢?

就是比如在A程序CPU内运行很快、在REM里相对而言比较慢。会有时间空闲。于是把这个时间利用一下,执行其他的程序。A把数据从硬件读入buffer需要时间。

**内存保护。**内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。通过釆用重定位寄存器和界地址寄存器来实现这种保护。重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址值。每个逻辑地址值必须小于界地址寄存器;内存管理机构动态地将逻辑地址与界地址寄存器进行比较,如果未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。每一个逻辑地址都需要与这两个寄存器进行核对,以保证操作系统和其他用户程序及数据不被该进程的运行所影响。

**定时。**在给定时间内未执行完就停止下来不执行了。

1. CPU—计算机的大脑

对于CPU的主要工作是:从内存中取出指令并执行。

在CPU内还有各种各样的寄存器,如下图。

寄存器 功能
通用寄存器 保存变量和临时数据
程序计数器 保存将要取出的下一条指令的内存地址(指令后继)
堆栈指针 指向栈顶、栈包含每个执行过程的栈帧
程序状态字 对于系统调用以及 I/O 比较重要

CPU的模式:

在PSW中有二进制控制这两种模式。

  1. 内核态:CPU执行指令集中每一条指令,并使用硬件的每种功能。
  2. 用户态:仅允许整个指令集中的一个子集和访问所有功能的一个子集。有关 I/O 和内存保护的所有指令被禁止。

多线程:它允许CPU保持在两个不同的线程状态、然后在 ns(纳秒)的时间尺度内来回切换。但是并不提供真正的并行处理,而是在一个时刻只有一个进程在运行(只是切换时间过于短暂、看起来就像是一起运行一样)。

2. 存储器—存储数据

存储器 访问时间 容量 特点
寄存器 1 ns < 10 KB 访问无时延、计算速度快
高速缓存 2 ns 4 MB 高速缓存命中通常需要两个时钟周期
主存 10 ns 1~8 GB 主力。有很多种:RAM、ROM、EEPROM、闪存、CMOS
磁盘 10 ms 1~4 TB 成本低、速度慢

SSD:固态硬盘并不是磁盘。其数据存储在存储器(闪存 Flash Memory)中。

**虚拟内存:**将程序放在磁盘上、将主存作为一种缓存(用以保存最频繁使用的部分程序)它需要快速地映像内存地址,以便把程序生存地地址转换成有关字节在RAM中地物理地址。这种映像由MMU的部件来完成。

3. I/O设备

一般包括两个部分:

  1. 设备控制器:为OS提供一个简单接口。
  2. 设备本身:自身有相对简单的接口。

**设备驱动程序 device driver:**专门与控制器对话、发出命令并接收响应的软件。

将设备驱动系统装入OS途径:

  1. 在OS文件中设置一个入口、并通知该文件需要一个设备驱动程序,然后重启动系统。
  2. 将内核与设备驱动程序重新链接,然后重启动系统。
  3. OS在运行时接受新的设备驱动程序并立即安装好,无须重启动系统。

4. 总线

总线的意思是什么呢?与CPU进行交互?还是传输数据捏?

在发明 PCIe(是陈旧的PCI总线的继承者) 之前,大多数的总线都是并行且共享的。即共享总线架构:多个设备使用一些相同的导线传输数据。

对于 PCIe 使用分离的端到端的链路。传统PCI使用的并行总线架构:表示通过多条导线发送数据的每一个字。但是PCIe使用串行总线架构。

USB用以连接所有慢速 I/O 设备以及计算机。

计算机启动过程—BIOS

在双亲板上有BIOS程序。而BIOS底层有底层的 I/O 软件(←读键盘、写屏幕、进行磁盘 I/O 等等)

BIOS存放在闪速RAM中、非易失、在发现BIOS有错时通过OS对它进行更新。

====计算机启动!BIOS运行。

  1. 首先检查所安装的RAM数量、键盘以及其他基本设备是否已经安装并正常响应。
  2. 扫描PCIe以及PCI总线并找出连在上面的所有设备。(包括即插即用设备)
  3. 尝试存储在CMOS存储器中的设备清单确定启动设备。
  4. 用户可以在系统刚启动之后进入BIOS配置程序对设备清单进行修改。
  5. 若存在CD-ROM(or USB)系统从中启动;如果失败,从硬盘启动。
  6. 启动设备上第一个扇区被读入内存并执行。
  7. OS询问BIOS以获得配置信息。检查对于设备驱动程序是否存在。
  8. 有了全部的设备驱动程序,OS将它们调入内核。
  9. 初始化有关表格,创建需要的任何背景进程,并在每个终端上启动登录程序或GUI。

三、什么是操作系统(OS)?

操作系统是指控制和管理整个计算机系统的软件和硬件资源,并合理地组织调度计算机的工作和资源的分配。

以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件。

是一个程序。有两个方面的功能:硬件扩充、资源管理。(Kernel:内核。对于OS的管理。)

1.硬件扩充—管理复杂性(抽象)

隐藏硬件细节:不需要太过了解底层磁盘什么的交互。

虚拟机硬件扩充

2.资源管理—实现多路复用(程序向操作系统申请内存、使用完毕归还给操作系统)

时间复用:不同的程序或用户轮流使用。

空间复用:分割内存、使尽可能多的运行程序可以同时入驻内存。

主要任务

在相互竞争的程序之间有序地控制对处理器、存储器、以及其他 I/O 接口设备的分备。

记录哪个程序在使用什么资源、对资源请求进行分配,评估使用代价。并为不同的程序和用户调解互相冲突的资源请求。

一些重要的概念

1.进程

​ 本质上是正在执行的程序。一个挂起的进程包括进程的地址空间以及对应的进程表项。

地址空间:从某个最小值的存储位置(通常是0)到某个最大值的存储位置的列表。

该地址空间中存放着可执行程序、程序的数据以及程序的堆栈。在该地址空间中,进程可以读写。

进程表:在许多OS中,与一个进程有关的所有信息(除该进程自身地址空间的内容以外)均存放在OS的一张表中。

进程表是数组(或链表)结构,当前存在的每个进程都要占用其中的一项。

子进程:一个进程可以创建一个或多个进程,而这些进程又可以创建子进程(←进程树)

进程与线程的区别?

警告信号:该信号会引起进程的暂时挂起。无论该进程正在做什么,系统将其寄存器的值保存在堆栈,并开始运行一个特别的信号处理过程。(比如重新发送可能丢失的信息)

UID (user identification):每个被启动的进程都有一个启动该进程的用户ID。子进程与父进程的ID一样。

值得一提的是:admin(管理员、超级用户)具有特殊的权力、可以违背一些保护规则。

2.地址空间

​ 主要来讲解一下虚拟内存:部分地址空间装入主存、部分留在磁盘上,在需要时来回交换它们。

需求:进程的地址空间比主存还大。

本质上:OS创建一个地址空间的抽象,作为进程可以引用地址的集合。

3.文件系统

大多OS支持目录的概念,把文件分类成组。

进程和文件层次都可以组成树状结构,但是二者存在一些不同。

目录层结构中地每一个文件都可以通过目录的顶部(根目录)开始的路径来确定。在实例中,每一个进程下都有一个工作目录,==对于没有以斜线开头给出的绝对地址的路径,将在这个工作目录下寻找。==进程可以通过使用系统调用指定新的工作目录,从而变更工作目录。

在读写文件之前,首先需要打开文件,检查其访问权限:

①若权限许可,系统将返回一个小整数(文件描述符

②禁止访问:系统返回一个错误码。

对于UNIX系统重要的概念:

(1)安装文件系统

大多数台式机都有一个或多个光盘驱动器,可以插入CD-ROM、DVD、蓝光光盘。

UNIX允许把光盘上的文件系统接到主文件树上。

但是对于CD-ROM上的文件系统,把其连接到程序所希望的根文件系统上。

(2)特殊文件

提供特殊文件是为了使 I/O 设备看起来像文件一样。使得 I/O 设备也可以通过同样的系统调用进行读写。

有两类特殊文件:块特殊文件字符特殊文件

块特殊文件:指那些可随机存取的块组成的设备

字符特殊文件:用于打印机、调制解调器和其他接收或输出字符流的设备。

(3)管道

管道是一种虚文件,可以连接两个进程。如果需要这两个进程可以通过管道对话,那么必须提前设置该管道。

4.输入/输出:每个OS都有管理其 I/O 设备的 I/O 子系统。某些 I/O 软件是设备独立的(可以同样应用于许多或全部的 I/O 设备上)

5.保护:在计算机中具有大量的信息,用户希望可以对其进行保护并保守秘密。管理系统的安全性完全依靠OS。

6.shell:命令解释器。shell本身不是OS的一部分,体现许多OS的特性,并很好地说明了系统调用的具体用法。

系统调用(程序接口)

命令接口:允许用户直接使用。分为联机命令接口(一句)和脱机命令接口(一堆)

程序接口:允许用户通过程序间接使用。(即由一组系统调用组成)

GUI:图形用户接口。

**系统调用:**是OS提供给应用程序(程序员)使用的接口。是一种可供调用的特殊函数,应用程序可以发出系统调用请求来获得OS的服务。

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

传递系统调用参数→执行陷入指令(用户态)→执行系统调用相应服务程序(核心态)→返回用户程序

注意:

  1. 陷入指令在用户态执行,但是执行完陷入指令后会立即引发一个内中断,从而CPU接入核心态。

  2. 发出系统调用请求在用户态,而对系统调用的相应处理在核心态下进行。

  3. 陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令。

分类:(需要在核心态下完成)

  1. 设备管理:完成设备的请求/释放/启动等功能。
  2. 文件管理:完成文件的读写/创建/删除等功能。
  3. 进程控制:完成进程的创建/撤销/阻塞/唤醒等功能。
  4. 进程通信:完成进程之间的消息传递/信号传递等功能。
  5. 内存管理:完成内存的分配/回收等功能。

四、操作系统的特征

并发和共享是OS中最基本的两个特征。

1.并发 (Multiprogramming)

宏观上:(大的时间跨度上讲)一起执行

微观上:(一个个指令上)一个个执行

微观串行,宏观并行

区分并行:指两个或多个时间在同一时刻同时发生

2.共享

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

分为两种:

  1. 互斥共享:一个时间段内仅允许一个进程访问该资源。

  2. 同时共享:允许一个时间段内由多个进程“同时”对它们进行访问。(宏观上同时)

3.虚拟

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

采用了“空分复用技术”以及“时分复用技术”。

4.异步

指多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,而是走走停停。

五、OS的种类

1. 大型机OS

大型机与PC的区别是其 I/O 处理能力。用于大型机的OS主要面向多个作业的同时作业,多数这样的作业需要巨大的 I/O 处理能力。系统主要提供三种服务:批处理、事务处理和分时。

2. 服务器OS

服务器OS在服务器上运行。它们通过网络同时为若干分用户服务,并允许用户共享硬件和软件资源。(服务器可以是大型的PC、工作站、甚至是大型机)

3.多处理器OS

获取大量联合计算能力的常用方式是将多个CPU连接成单个的系统。根据连接和共享的方式不同,这些系统被成为:并行计算机、多计算机或多处理器。它们通常采用的OS是配有通信、连接和一致性等专门功能的服务器OS的变体。

4.个人计算机OS

特点是:为单个用户提供良好的支持。广泛用于字处理、电子表格、游戏和Internet访问。

5.掌上计算机OS

PDA,如IPad或智能手机。主导的是Android和IOS系统。

6.嵌入式OS

在用来控制设备的计算机中运行。这种计算机并不是一般意义上的计算机,且不允许用户安装软件。

特点是:不可信的软件不能在嵌入式系统上运行

7.传感器节点OS

有许多用途需要配置微小传感器节点网络。这些节点是一种可以彼此通信且可以使用无线通信基站的微型计算机。可用于建筑物周边保护、国土边界保护、森林火灾探测、气象预测等等。

每个传感器节点是一个配有CPU、RAM、ROM以及一个或多个环境传感器的计算机。该OS小而简单、设计简化。

实时OS(Real-Time System)

分时OS-省时交互-同时共享:

  1. 对于CPU的不断复用

  2. 对于加载卸载memory

  3. 人机在线交互

  4. 在线的及时的处理数据和代码

但是对于所有的用户都是完全公平的,不能优先处理紧急任务。

实时OS:紧急任务不需时间片排队。

  1. 要在严格的时限内处理完事件。
  2. 主要特点是:及时性以及可靠性。

实时OS又分为:硬实时OS(严格不准违反时间规定)以及软实时OS(偶尔违反)

9.智能卡OS(Smart-Card)

智能卡是一种包含一块CPU芯片的信用卡。它有非常严格的运行能耗和存储空间的限制。其中,有些智能卡只具有单项功能;有些具有多项功能,它们会有专门的智能卡OS。

六、OS运行机制及体系结构

指令:不同于我们利用高级语言编写的程序,指令是机器语言利用二进制编写的指令。是CPU能够识别的、最基本命令。

指令分为:特权指令(不允许用户程序使用)及非特权指令。

当CPU位于用户态时只能执行非特权指令。位于核心态则均可执行。

OS中哪些功能需要在内核态下使用呢?

时钟管理、中断处理、原语(设备驱动、CPU切换)以及进程管理、存储器管理、设备管理等功能。

体系结构

  1. 大内核:将OS的主要功能模块都作为系统内核、运行在核心态。高性能但是内核代码庞大难以维护。

  2. 微内核:只保留了最基本的功能,内核功能少、结构清晰、方便维护,但是需要频繁的切换于核心态与用户态之间,性能低。

单体系统

在大多数常见的组织中,整个OS在内核态中以单一程序的方式运行。整个OS以过程集合的方式编写,链接成一个大型可执行的二进制程序。对于这种技术,系统中每个过程都可以自由调用其他过程,只要后者提供了前者所需要的一些有用的计算工作。调用任何一个你所需要的过程或许会非常高效,但是上千个可以不受限制彼此调用的过程常常导致系统笨拙且难以理解,任何一个过程的崩溃都会连累整个系统。

对于单体系统,有如下的结构:

  1. 主程序:处理服务过程请求。
  2. 服务过程:执行系统调用。
  3. 实用过程:辅助服务过程。

除了计算机初启时所安装的核心OS系统外,许多OS支持可装载的扩展(I/O 设备和文件系统什么的)如UNIX中的共享库、Window中的动态链接库。

在这里插入图片描述

层次式系统

把上图的单体系统结构模型进一步通用化,就变成了一个层次结构的OS。它的上层软件都是在下一层软件的基础之上构建的。

虚拟机

虚拟内存:通过RAM和磁盘中反复移动信息块的方式,提供了运行比机器物理内存大的能力。

虚拟内存还可使程序可以在运行时动态地链接库,而不是必须在编译时链接。

VM/370的核心称为虚拟机监控程序。它在裸机上运行且具备了多道程序功能。该系统向上层提供了若干台虚拟机。

该虚拟机仅是裸机硬件的精确复制品,包含了内核态/用户态、I/O 功能、中断及其他真实硬件所应该具有全部内容。

由于每台虚拟机都与裸机相同、所以在虚拟机上都可以运行一台裸机所能够运行的任何类型的操作系统。不同的虚拟机可以运行不同的OS。在早期的VM/370系统上,有一些系统运行OS/360或者其他大型批处理或事物处理OS,而另一些虚拟机运行单用户、交互式系统供分时用户使用,这个系统称为会话监控系统。

外核:与虚拟机不同,其对机器进行分区。给每个用户整个资源的一个子集。外核的程序会在内核态运行,它的任务是为虚拟机分配资源,并检查使用这些资源的企图,以确保没有机器会使用他人的资源。

外核机智的优点是:减少了映像层。外核只需要记录已经分配给各个虚拟机的有关资源即可。它可以将多道程序(外核内)与用户操作系统代码(用户空间内)加以分离,而相应的负载并不重(保持虚拟机彼此不发生冲突)

七、中断

中断机制的产生

​ 早期计算机内程序串行执行,系统资源利用率极低。因此为了提高系统资源利用率,引入了中断机制,实现了多道程序并发执行

本质:发生中断意味着需要OS介入来开展管理工作。

当中断发生后,CPU会立即进入核心态。(使用特权指令)当前运行进程暂停运行,由OS介入对中断进行处理。对于不同的中断信号,OS拥有不同的处理方式。、

用户态与核心态的切换如何实现?

1.对于用户态→核心态:通过中断实现,且是唯一途径。

2.对于核心态→用户态:将PSW标志位设置为用户态。

中断分类:

  1. 内中断(异常、例外、陷入)信号来源于CPU内部,与当前指令的执行有关。

    又分为自愿中断(指令中断)及强迫中断(分为硬件故障或软件中断)

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

    外设请求以及人工干预。

对于内中断分类:陷阱(trap)、故障(fault)、终止(abort)

对于外中断的处理过程:

  1. 每条指令执行结束后,CPU都需要检查是否有外部中断信号
  2. 若有外部中断信号,则需要保护被中断进程的CPU环境(存档)
  3. 根据中断信号,转入相应的中断处理程序
  4. 恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

八、历史

介绍一些相关的东西。(才不是正经的历史啊喂)

手工操作哦阶段–单道批处理–多道批处理–

1.批处理(Batch System)

早期的批处理の目的:减少机时,避免浪费。

  1. 在输入室收集全部的作业。
  2. 使用相对便宜的计算机(适合读卡片、复制磁带、输出打印)读到磁带上。
  3. 使用适合计算且比较昂贵的计算机完成计算。
  4. 那个相对便宜的计算机(脱机)打印输出。

在大型机OS中,批处理系统处理不需要交互式用户干预的周期性作业。

2.X86

X86代表的是所有使用指令集体系结构家族的现代处理器。源头追溯至20世纪70年代8086芯片。

【详细介绍请追更,并且向鸽子精博主发送点赞光波】

七、小结

操作系统的功能、概念:

操作系统是指控制和管理整个计算机=系统的软件和硬件资源,并合理地组织调度计算机的工作和资源的分配。

以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件。

是一个程序。有两个方面的功能:硬件扩充、资源管理。]

掌握一些硬件知识

自我感觉重点是存储器、有关缓存那些事儿。如果不是当我没说捏。

进程继续往下执行

八、历史

介绍一些相关的东西。(才不是正经的历史啊喂)

手工操作哦阶段–单道批处理–多道批处理–

1.批处理(Batch System)

早期的批处理の目的:减少机时,避免浪费。

  1. 在输入室收集全部的作业。
  2. 使用相对便宜的计算机(适合读卡片、复制磁带、输出打印)读到磁带上。
  3. 使用适合计算且比较昂贵的计算机完成计算。
  4. 那个相对便宜的计算机(脱机)打印输出。

在大型机OS中,批处理系统处理不需要交互式用户干预的周期性作业。

2.X86

X86代表的是所有使用指令集体系结构家族的现代处理器。源头追溯至20世纪70年代8086芯片。

【详细介绍请追更,并且向鸽子精博主发送点赞光波】

七、小结

操作系统的功能、概念:

操作系统是指控制和管理整个计算机=系统的软件和硬件资源,并合理地组织调度计算机的工作和资源的分配。

以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件。

是一个程序。有两个方面的功能:硬件扩充、资源管理。]

掌握一些硬件知识

自我感觉重点是存储器、有关缓存那些事儿。如果不是当我没说捏。

猜你喜欢

转载自blog.csdn.net/Schwertlilien/article/details/122521463