• 操作系统·操作系统引论


    1.1 操作系统的目标和作用

    1.目前常见操作系统:
    微软:Windows系列(以前MS-DOS)
    UNIX:Solaris, AIX, HP UX, SVR4, BSD, ULTRIX
    自由软件:Linux, freeBSD, Minix
    IBM: AIX, zOS(OS/390), OS/2, OS/400, PC DOS
    移动OS:Symbian, PALM, ANDROID, iOS
    其他:Mac OS, NetWare,......
    国产:Deepin, RedflagLinux, 中标麒麟NeoKylin, Harmony

    2.操作系统的定义
    操作系统(operating system,简称OS)是一组能有效组织和管理计算机硬件和软件资源,合理对各类作业进行调度以及方便用户使用的程序集合。 
    操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调多个任务的活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。

    1.2 操作系统的目标与作用

    1.操作系统的目标
    有效性(改善资源利用率、提高吞吐量)
    方便性(配置OS后计算机系统更容易使用)
    可扩充性(OS应采取层次化结构)
    开放性(OS应遵循世界标准规范)

    2.操作系统的作用
    (1)OS作为用户与计算机硬件系统之间的接口

    (2) OS 作为计算机系统资源的管理
    (3)OS用作扩充机器实现对计算机资源的抽象
    把覆盖了软件的机器称为扩充机器或虚机器,OS包含了若干个层次,因此在裸机上覆盖OS后,便可获得一台功能显著增强,使用极为方便的多层扩充机器或多层虚机器。

    1.3 操作系统的发展过程

    1.3.1 手工操作阶段

    电子管计算机:无操作系统,由手工控制作业的输入输出,通过控制台开关启动程序运行。

    用户使用计算机的过程大致如下:
    先把程序纸带装上输入机,启动输入机把程序和数据送入计算机,然后通过控制台开关启动程序运行,计算完毕后,用户拿走打印结果,并卸下纸带。

    1.手工交互方式的特点:
    1) 程序设计直接编写成二进制目标程序;
    2) 输入/输出设备主要是纸带和卡片读入机;
    3) 程序员上机必须预约机时;
    4) 程序员自己上机操作;
    5) 程序的启动与结束处理都以手工方式进行;
    6) 程序员的操作以交互方式进行(控制台);
    7) 单用户方式;
    8) 程序执行过程得不到任何帮助。

    2.手工交互方式的缺点:
    用户独占全机、CPU等待人工
    手工装卸、人工判断、手工修改与调试内存指令等造成CPU空闲;
    提前完成造成剩余预约时间内的CPU完全空闲;
    I/O设备的慢速与CPU的速度不匹配造成的CPU空闲等待时间。

    3.脱机输入/输出(Off-Line I/O)方式
    用户使用计算机的过程大致如下:
    先把程序纸带装上输入机,在外围机的控制下,输入到磁带上,当CPU需要时,从磁带高速调入内存。
    输出时,CPU直接高速把数据从内存送到磁带,然后在另一台外围机的控制下,将磁带上的结果通过输出设备输出。

    脱机I/O方式的优点:
    减少了CPU的空闲时间
    提高了I/O速度

    4.联机与脱机
    联机输入/输出(On-Line I/O)方式:在主机的直接控制下输入输出程序和数据
    脱机输入/输出(Off-Line I/O)方式:脱离主机的情况下输入输出程序和数据
    脱机减少CPU的空闲时间、提高IO速度

    1.3.2 单道批处理阶段

    晶体管计算机:操作系统的雏形,称为监控程序。

    单道批处理系统的工作过程:用户将作业交到机房,操作员将一批作业输入到辅存(如磁带)上,形成一个作业队列。当需要调入作业时,监控程序从这一批中选一道作业调入内存运行。当这一作业完成时,监控程序调入另一道程序,直到这一批作业全部完成。

    由于系统对作业的处理都是成批的进行,且在内存中始终只保持一道作业,故称为单道批处理系统(Simple Batch System)。


    (单道程序运行情况)

    1.3.3 多道批处理系统

    操作系统发展史上革命性变革。

    多道程序设计技术:在内存中放多道程序,使它们在管理程序的控制下相互穿插地运行。

    多道批处理系统的工作过程:用户将作业交到机房,操作员将一批作业输入到辅存(如磁盘)上,形成一个作业队列。当需要调入作业时,管理程序从这一批中选几道作业调入内存,让它们进入内存运行。当一些作业完成时,管理程序调入另一些作业,直到这一批作业全部完成。


    (多道程序运行情况图)

    多道运行的特点:
    宏观上并行:同时有多道程序在内存运行,某一时间段上,各道程序不同程度地向前推进。
    微观上串行:任一时刻最多只有一道作业占用CPU,多道程序交替使用CPU。

    多道批处理系统的优缺点:
    资源利用率高:资源指CPU及设备。
    系统吞吐量大:系统吞吐量指系统在单位时间完成的总工作量。
    平均周转时间长:作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间。
    但是,无交互能力、不适合软件开发(脱机)

    多道批处理系统需要解决的问题:
    处理机争用
    内存分配保护
    I/O设备分配
    文件组织管理
    用户系统接口等问题

    1.3.4 分时系统(Time-Sharing System)

    1.为什么会出现?
    推动多道批处理系统形成和发展的动力是提高资源利用率系统吞吐量
    推动分时系统形成和发展的主要动力是用户的需要:交互、共享主机、方便上机

    2.什么是分时系统?
    分时系统是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘,以交互的方式使用计算机,共享主机中的资源。

    分时系统实现中的关键问题:
    实现人机交互是即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理。
    及时接收(多路卡和缓冲区)
    及时处理:作业直接进入内存、不允许一个作业长期占用处理机。
    及时处理(划分时间片):多个用户分时使用主机,每一用户分得一个时间片,用完这个时间片后操作系统将处理机分给另一用户,如此循环,每一用户可以周期性地获得CPU使用权,这样每一用户都有一种独占CPU的感觉。

    分时系统的特征:
    多路性:允许同一主机联接多台终端。
    独立性:每一用户各占一个终端。
    及时性:用户请求能及时响应。
    交互性:可进行广泛的人机对话。

    1.3.5 实时操作系统

    实时系统(Real-Time System)是指系统能及时(实时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
    实时控制:如工业控制、武器的控制等。
    实时信息处理:如联网订票系统

    按实时任务是否呈现周期性分:
      周期性实时任务
      非周期性实时任务
         开始截止时间
         完成截止时间
    按对截止时间的要求分:
      硬实时任务HRT
      软实时任务SRT

    实时系统的特征:
    多路性
    独立性
    及时性(开始截止时间/完成截止时间)
    交互性(限定专用服务程序)
    可靠性(多级容错措施)

    1.3.6 微机操作系统

    单用户单任务操作系统:CP/M(73年)、MS-DOS(81年)。
    单用户多任务操作系统:OS/2(87年)、MS WINDOWS(90年windows 3.0)。
    多用户多任务操作系统:UNIX(70年)。UNIX既可以用在微机上也可以用在大型机上。

    1.3.7 多处理机操作系统

    多处理机系统(70年代)的类型:
    紧密耦合MPS:多处理机通过高速线路互连,它们共享主存和外设。
    松散耦合MPS:通过通道或通信线路实现多台计算机互连,每台计算机可独立工作,必要时通过通信线路与其它计算机交互。

    多处理机操作系统的类型:
    非对称多处理模式:主从模式,主处理机只有一个,配置操作系统。从处理机可有多个。
    对称多处理模式:所有处理机都相同。操作系统可根据需要运行于其中的任一处理机上。

    1.3.8 网络操作系统

    网络操作系统是指使网络上各计算机能方便有效地共享网络资源、为网络用户提供各种服务的软件与有关规程的集合。
    如 Novell 公 司 的 Intranetware 和 微 软 公 司 的Windows2000/NT。

    计算机网络操作系统的模式:
    客户/服务器模式(Client/Server)网络中的各个站点可以分为两大类:
    服务器:为客户提供服务如文件服务、打印服务、数据库服务等
    客户机:用户通过客户机访问服务器
    对等模式(Peer-to-Peer)各个站点是对等的,它既可作为客户也可作为服务

    1.3.9 分布式操作系统

    在以往的系统中,其处理和控制功能都高度集中在一台主机上,所有的任务都由主机处理,这样的系统称为集中式处理系统。

    所谓分布式系统,是指由多个分散的处理单元经网络的连接而形成的系统。系统的处理和控制功能都分散在系统的各个处理单元上。系统中的所有任务可以动态地分配到各个处理单元中去。

    分布式操作系统与网络操作系统的比较:
    分布性:
    在分布式系统中只有一个分布式操作系统;
    在网络系统中各个结点可以有不同的网络操作系统。
    并行性:
    分布式系统中可以将一个或多个任务动态分配到不同的单元上,并行处理;
    在网络系统中每个用户的一个或多个任务通常都在本地处理。
    透明性:
    分布式系统具有透明性,如用户要访问某文件,他只需要知道文件名,无需知道文件在哪个站点。
    对网络系统来说,用户要访问一个文件时要知道文件名及位置。
    共享性:
    在分布式系统中,各站点的所有资源都可供全系统共享;
    在网络系统中一般仅有服务器上的部分资源可供全网共享。
    健壮性:
    分布式系统有健壮性,当某站点出现故障时,正在该站点处理的任务能被自动迁移到好的站点。
    在网络系统中若服务器故障往往导致全网瘫痪。

    1.3.10 嵌入式操作系统

    什么是嵌入式系统?
    在各种设备、装置或系统中,完成特定功能的软硬件系统;它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”;通常工作在反应快或对处理时间有较严格要求环境中;由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统。

    1.4 操作系统的基本特性

    1.4.1 并发

    并发:
    在内存中放多道作业,在一个时间段上看,每一道作业都能不同程度地向前推进。但在任何一个时间点上只能有一道占用CPU。

    与并发相关的概念:
    并发:两个或多个作业在同一时间段运行;
    并行:两个或多个作业在同一时间点运行;存在于有多个CPU的环境中,在内存中放多道作业,在任一时间点上都可能有多道 作业在不同的CPU上同时执行。
    串行:在内存中每次只能放一道作业,只有它完 全执行完后别的作业才能进入内存执行。

    程序实际上是不能并发执行的,只有为程序创建进程,才能并发执行;进程是指在系统中能独立运行并作为资源分配的基本单位;进程不仅包括程序,还包括数据、堆栈等;是一个独立运行的活动实体。现代操作系统引入了能独立运行的更小的单位——线程。进程和并发是现代操作系统中最重要的基本概念。

    1.4.2 共享

    共享:系统中的资源可供多个并发的进程共同使用。

    两种资源共享方式:
    互斥共享方式:一段时间仅允许一个进程访问的资源,称为临界资源/独占资源,例如:打印机、磁带、程序中的变量、堆栈等。
    同时访问方式:一段时间允许多个进程访问,但微观交替使用,例如:磁盘

    并发与共享互为条件,是多用户OS最基本的特征。

    1.4.3 虚拟

    虚拟:通过某种技术将一个物理实体映射为若干个逻辑上对应物。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。
    CPU——多道程序设计技术/每个用户(进程)的“虚拟处理机”
    I/O设备——打印机、多窗口或虚拟终端
    存储器——虚拟存储器技术

    时分复用:利用处理机的空闲时间运行其他程序,提高处理机的效率。
    空分复用:利用存储器的空闲空间分区域存放和运行其他的多道程序,提高内存的利用率。

    1.4.4 异步性

    异步性:进程以不可预知的运行速度向前推进。
    现代操作系统中,多个进程并发执行,“走走停停”,无法预知每个进程的运行推进快慢。
    难以重现系统在某个时刻的状态(包括重现运行中的错误)。

    1.5 操作系统的运行环境——硬件支持

    现代计算机系统包括一个或者多个CPU和若干设备控制器,通过公共总线相连而成,该总线提供了共享内存的访问。

    1.5.1 操作系统内核

    常驻内存,通常与硬件紧密相关

    内核功能-支撑功能
    中断处理:整个OS赖以活动的基础
    时钟管理:内核基本功能
    原语操作:
      由若干条指令组成,用于完成一定功能。
      原子操作:要么不做,要么全做,不可分割。

    内核功能-资源管理功能
    进程管理、存储器管理、设备管理

    1.5.2 处理机的双重工作模式

    1.5.3 特权指令和非特权指令

    特权指令:在内核态下运行的指令
    不仅能访问用户空间,还能访问系统空间。
    如启动外部设备、设置系统时钟、管中断、切换执行状态、I/O指令。

    非特权指令:在用户态下运行的指令
    应用程序所使用的都是非特权指令。
    防止应用程序的运行异常对系统造成破坏。
    仅能访问用户空间。

    1.5.4 用户态到内核态的切换

    状态位(Mode bit) 指示正确的状态:内核态(0),用户态(1)
    当中断或错误出现,硬件切换至内核态。

    1.5.5 中断与异常

    中断(interrupt):由硬件引起。操作系统是中断驱动的,OS总在等待某个事件的发生,事件总是由中断或异常引起的。
    异常/陷阱(trap):由软件引起。
    出错(如除数为零或无效存储访问)。
    用户程序的特定请求(如执行OS的某个服务)。

    1.6 操作系统的基本功能

    1.6.1 处理机管理

    处理机是计算机中最重要的资源;
    现代操作系统允许多个进程共享处理机,按照某种算法(分时、优先级)交替地使用处理机。

    进程控制:
    完成为作业创建一个或多个进程
    撤消已经结束的进程
    实现进程在运行过程的状态转换

    进程同步:
    任务:协调多个进程的运行。
    协调方式:进程互斥方式:进程访问临界资源/锁;进程同步方式:进程相互合作/顺序

    进程通信:
    实现相互合作的进程之间信息的交换/传递。

    调度:
    传统调度分为:作业调度和进程调度
    作业调度完成从后备队列中按照一定算法,选择出若干个作业,为他们分配必需的资源,建立进程,并按一定算法将他们插入就绪队列。
    进程调度完成从就绪队列中选一道进程,为他分配处理机,设置运行现场,以使其运行。

    1.6.2 存储器管理

    第二重要资源。

    内存分配
    为每道作业分配内存空间
    提高内存利用率,减少不可用的内存空间
    允许正在运行的进程动态申请附加内存
    应具有的功能和结构:
      内存分配数据结构
      分配算法
      内存回收

    地址映射:把地址空间的逻辑地址转换为内存空间的物理地址的过程为地址映射。
    程序->目标程序->可装入程序
    可装入程序的地址从0开始 
    可装入程序地址范围 -> 地址空间;地址 -> 逻辑地址
    内存中的地址范围 -> 内存空间 ;地址 -> 物理地址

    存储保护
    确保多道程序间仅在自己的内存空间运行,互不干扰
    简单的内存保护机制:界限寄存器

    存储扩充
    用辅存扩充主存,实现“虚拟存储器”
    实现方法
      请求调入功能:允许装入一部分程序和数据就可以运行,运行时,若发现继续运行所需的程序和数据不在内存,再向OS发出请求,将其调入。
      置换功能

    1.6.3 设备管理

    最庞大、琐碎的部分,因为:
    物理设备品种繁多、用法各异
    各种外设能和主机并行工作
    主机与各类外设速度极不匹配,级差很大

    设备管理应具有的功能:
    设备分配
    设备驱动
    缓冲管理
    设备独立性和虚拟设备

    1.6.4 文件系统管理

    文件系统管理的功能:
    文件存储空间管理
      为每个文件分配必要的外存空间、提高外存利用率、有助于提高文件系统的运行速度。
      需具备的结构和功能
    目录管理
      建立目录项,组成目录文件,按名存取,方便用户找到他所需的文件;
      多级目录管理还允许重名;
      可以实现文件共享。
    文件的读写管理和存取控制:存取控制就是防止文件被非法1.6.5 使用。

    1.6.5 用户接口

    命令接口:为了便于用户直接或间接地控制自己的作业。(联机用户接口与脱机用户接口)
    图形接口
    程序接口:为用户程序在执行中访问系统资源而设置的。由一组系统调用组成。

    1.7 操作系统的结构设计

    1.7.1 传统的操作系统结构

    无结构OS
      设计基于功能实现和获得高的效率
      OS是为数众多的一组过程的集合
      OS整体无结构(程序之间)
      程序内部代码无结构(goto语句非常多)

    模块化OS结构
      20世纪60年代出现,基于“分解”和“模块化”原则来控制大型软件的复杂度。
      模块的独立性
        模块大小的划分
        衡量模块独立性的指标
          内聚性:模块内部各部分间联系的紧密程度
          耦合度:模块间相互联系和相互影响的程度分层式OS结构
      模块化OS的优点
        提高OS设计的正确性、可理解性和可维护性
        增强OS的可适应性
        加速OS的开发过程
      模块化OS的缺点
        设计时对模块的划分与接口的规定不精确
        模块间存在复杂依赖关系

    分层式OS结构
    分层设计的基本原则:每一层都仅使用其底层所提供的功能和服务。
    分层的优缺点:
      容易保证系统的正确性
      容易扩展和维护
      缺点是系统效率降低,层间通信带来了新的开销

    1.7.2 现代OS结构——微内核结构

    20世纪90年代发展起来,可支持多处理机运行,适用于分布式系统环境。
    微内核技术:精心设计的、能实现现代OS核心功能的小型内核,它与一般OS不同,更小更精练,运行于核心态、开机后常驻内存。

    微内核OS结构的特征:
    以微内核为OS核心
    以客户/服务器为基础
    采用面向对象的程序设计方法

    微内核的基本概念:
    足够小的内核:实现OS最基本核心功能的小型内核,并非一个完整的OS,是OS中最基本的部分。
    基于客户服务器模式:OS中最基本的放入内核,而把OS中绝大部分功能放在微内核外的一组进程(服务器)
    机制与策略分离:将实现OS功能的具体执行机构放入微内核
    面向对象技术:抽象、封装、隐蔽

    微内核OS结构:

    微内核的基本功能:
    进程线程的管理:采用机制与策略分离的原则,属于调度功能的机制部分、进程的通信、切换
    低级存储器管理:依赖于硬件的最基本的低级存储器管理(页表机制、地址变换机制)
    中断和陷入的处理:捕获中断与陷入事件并进行相应的处理(与硬件紧密相关)

    微内核的优点:
    微技术内核是建立在模块化、层次化结构的基础之上,采用了客户服务器模式和面向对象的程序设计技术
    可扩展性
    可靠性
    可移植性
    面向对象
    对分布式系统的支持

    1.8 系统调用

    系统调用目的:使应用程序可以通过它间接调用OS内核中的相关过程,取得相应的服务。

    系统调用概念:
    应用程序请求OS内核完成某功能时的一种过程调用;
    用户与内核的接口。

    与一般过程调用的区别:
    运行在不同的系统状态
    状态的转换
    返回问题
    嵌套调用

  • 相关阅读:
    计算机网络第1章 (概述)
    24点游戏题库算法分析
    计算机网络
    C++多线程学习07 unique_lock与scoped_lock
    [附源码]SSM计算机毕业设计郴职图书馆管理系统JAVA
    SpringCloud引入SpringBoot Admin
    创建型设计模式六兄弟
    Centos - DHCP 服务器搭建
    IDEA创建Sping项目只能勾选17和21,却无法使用Java8
    实验一 Linux基本操作
  • 原文地址:https://blog.csdn.net/m0_46220989/article/details/134221504