操作系统

基础概念

概念和定义

操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;他是计算机系统中最基本的系统软件。
alt text
执行一个程序前需要将该程序放到内存中,才能被CPU处理。
alt text

操作系统的功能和目标

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

联机命令接口=交互式命令接口(windows-CMD命令行)
脱机命令接口=批处理命令接口(Windows-*.bat文件)
程序接口:可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用
alt text
alt text

作为最接近硬件的层次

需要实现对硬件机器的拓展,没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机。
alt text

操作系统的特征

并发

并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
并行:指两个或多个事件在同一时刻同时发生。
操作系统的并发性:指计算机系统中“同时”运行着两个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
注意:

  • 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
  • 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。(例如intel的第八代i3处理器就是4核CPU,意味着可以并发地执行4个程序。)
    即使对于4核CPU来说,只要有4各以上的程序需要“同时”运行,那么并发性依然是必不可少的
    并发性是操作系统一个最基本的特性

共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
alt text
所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问(即分时分享)
eg:
互斥共享方式:使用QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程。
同时共享方式:使用QQ发送A,同时使用微信发送文件B。宏观上,两边在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上,两个进程是交替访问硬盘的。

并发和共享的关系

并发性指计算机系统中同时存在着多个运行着的程序。
共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
注:
使用QQ发送文件A,使用微信发送文件B:

  1. 两个进程正在并发执行(并发性)
  2. 需要共享地访问硬盘资源(共享性)

可知:

  • 如果失去并发性,则系统中只有一个程序在运行,则共享性失去了存在的意义
  • 如果失去共享性,则内存中多个执行的进程不能同时访问系统中的资源,就无法实现同时工作,也就无法并发。
    所以,并发和共享是充分必要条件

虚拟

虚拟是指把一个物理上的试题变为若干个逻辑上的对应物,物理实体是实际储存在的,而逻辑上对应物是用户感受到的。
虚拟技术:

  • 空分复用技术(如虚拟存储器技术)
  • 时分复用技术(如虚拟处理器)

显然,如果失去了并发性,则一个时间段内系统中只运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。

课后题

  1. 在计算机系统上配置OS(operating system,操作系统)的目标是什么?作用主要表现在哪几个方面?
    解:目标是实现方便性、有效性、可扩充性、开放性。作用主要表现在OS作为用户与计算机硬件系统之间的接口、作为计算机系统资源的管理者、实现了对计算机资源的抽象。
  2. 试说明OS与硬件、其他系统软件以及用户之间的关系。
    解:OS是铺设在计算机硬件上的多层软件的集合,实现了对计算机硬件操作的多个层次的抽象模型。抽象层次越高,抽象接口所提供的功能就越强,用户使用起来也就越方便。
  3. 试说明推动OS发展的主要动力是什么。
    解:推动OS发展的主要动力是:为了不断提高计算机系统资源的利用率、为了方便用户、器件的不断更新换代、计算机体系结构的不断发展以及不断提出新的应用需求。
  4. 在OS中,何谓脱机I/O(input/output,输入/输出)方式和联机I/O方式?
    解:脱机I/O方式:指的是程序和数据的输入输出都是在外围机的控制下完成(都是在脱离主机的情况下进行的),而联机I/O方式则是在主机的直接控制下进行I/O的方式。
  5. 试说明推动分时系统形成和发展的主要动力是什么。
    解:为了满足用户对人机交互方面的需求,推动了分时系统的形成和发展,主要表现在:人机交互、共享主机等方面。
  6. 实现分时系统的关键问题是什么?应如何解决?
    解:关键问题是:用户如何与自己的作业进行交互,为此,首先要求系统必须能提供多个终端给多个用户使用;其次,当用户在自己的终端上键入命令时,系统应能及时接受并处理该命令,然后将处理结果返回给用户。解决:1). 及时接受:要做到及时接受多个用户键入的命令或数据,只须在系统中配置一个多路卡即可。2). 及时处理:人机交互的关键在于,用户键入命令后,能对自己的作业极其运行及时地实时控制,或进行修改。因此,各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行。所以,为了实现人机交互,需要使用:(1). 采用作业直接进入内存的方式。因为作业在磁盘上是不能运行的,所以应该直接进入内存。(2). 采用轮转运行的方式。如果一个作业独占处理机而连续运行,那么其他作业就没有机会被调度运行。为了避免一个作业长期独占处理机,引入了时间片的概念。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。
  7. 为什么要引入实时系统?
    解:因为系统的正确性不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间。为了系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行,所以需要引入实时系统。
  8. 什么是硬实时任务和软实时任务?试举例说明
    解:硬实时任务(hard real time, HRT):是指系统必需满足对截止时间的要求,否则可能出现难以预测的后果。比如用于工业控制和武器控制的实时系统,若系统不满足对截止时间的要求,则会出现很严重的问题。软实时任务(soft real time, SRT):其对截止事件的要求没有那么严格,偶尔错误任务的截止事件,对事件的影响也不会太大。例如,信息查询系统和多媒体系统中的实时任务。
  9. 试从及时性、交互性及可靠性方面对分时系统与实时系统进行比较。
    解:(1). 信息查询系统对实时性的要求是依据人所能接受的等待事件确定的。多媒体系统实时性的要求是播放出来的音频和视频能令人满意。实时控制系统的实时性则是以控制对象所要求的截止时间来确定,一般为秒级到毫秒级。(2). 交互性:在信息查询系统中,人与系统的交互性仅限于访问系统中某些特定的专用服务程序。它并不能像分时系统那样向终端用户提供数据处理、资源共享等服务。多媒体系统的交互性也仅限与由用户发送某些特定的命令,如开始、停止、快进等,然后由系统立即响应。(3). 可靠性:分时系统要求系统可靠,实时系统要求系统高度可靠,因为任何差错都可能带来无法预料的灾难性后果。因此,在实时系统中,往往都采用了多级容错措施,以保障系统及数据的安全性。
  10. 微机OS按运行方式来分,可以分为哪几类?举例说明。
    解:微机OS按运行方式来分可以分为:(1). 单用户单任务OS,只允许一个用户上机,且只允许用户程序作为一个任务运行,如CP/M(8位)和MS-DOS(16位)。(2). 单用户多任务OS,只允许一个用户上机,但允许用户把程序分为若干个任务并发执行,从而有效地改善了系统性能。如微软公司推出的windows系列,windows3.1、windows95/98等。(3). 多用户多任务,允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能够并发执行,从而可进一步提高资源利用率和系统吞吐量。如UNIX系统、各类类UNIX系统(linux,Solaris等)以及windows NT/Server系列的系统。
  11. OS具有哪几大特征?它们之间有何关系?
    解:OS同时具有并发、共享、虚拟和异步这四个基本特性。并发是共享的充分必要条件,没有并发性,就没有虚拟性,也就没有异步性。
  12. 是什么原因使OS具有异步特征?
    解:因为进程是以人们不可预知的速度向前推进的,所以OS具有异步性。
  13. 何谓OS内核? OS内核的主要功能是什么?
    解:现代OS一般会划分为若干层次,再将不同功能分别设置在不同层次中。通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序、运行频率较高的模块(如时钟管理模块、进程调度模块等)以及许多模块所公用的一些基本操作,都安排在紧靠硬件的软件层次中,并将它们常驻内存。这个就叫OS内核。OS内核这样安排的目的是:便于对这些软件进行保护,防止它们遭受其他应用的破坏;其次可以提高OS的运行效率。所以OS内核的主要功能是:(1). 主要实现提供给OS其他众多模块所需要的一些基本功能,以支撑这些模块工作。其中3种最基本的支撑功能是:中断处理、时钟管理和原语操作。(2). 资源管理功能:提供进程管理、存储器管理、设备管理功能。
  14. 何谓原语? 何谓原子操作?
    解:原语(primitive),就是由若干条指令组成的,用于完成一定功能的一个过程。原子操作(action operation):指一个操作中的所有动作要么全做,要么全不做,此即原子性。他是一个不可分割的基本单位。
  15. 简要描述处理机的双重工作模式。
    解:一般地,处理机至少需要两种单独运行模式:用户态和内核态。
    (1). 用户态也称为目态,计算机硬件可以通过一个模式位为1来表示它。当计算机系统执行用户程序时,系统处于用户态
    (2). 内核态也称为管态或系统态,计算机硬件可以通过一个模式位为0来表示它。每当OS能够控制计算机时,它就处于内核态。例如,当用户程序通过系统调用请求OS服务时,系统必须从用户态切换到内核态,以响应请求。
  16. 简述中断处理过程。
    解:一旦CPU响应中断,系统就会开始进行中断处理。中断处理过程主要包括以下3步:
    (1). 保护被中断进程的现场。为了在中断处理结束后能使进程正确地返回中断点,系统必须保存当前处理机状态字和程序计数器的值。
    (2). 分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源所发出的中断请求。
    (3). 恢复被中断进程的现场,CPU继续执行被中断的原进程。
  17. 处理机管理有哪些主要功能? 它们的主要任务是什么?
    解:处理机管理的主要功能有进程管理有进程管理、进程同步、进程通信和处理机调度。各部分的主要任务为:①进程管理,为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换; ②进程同步,协调多个进程(含线程)的运行;③进程通信,实现在相互合作的进程之间进行信息交换;④处理机调度,包括作业调度和进程调度。作业调度是按照一定的算法从后备队列里选出若干个作业,为它们分配运行所需的资源;进程调度是按照一定的算法从进程的就绪队列中选出一个进程,把处理机分配给它,并设置运行现场,使进程投入执行。
  18. 存储器管理有哪些主要功能? 它们的主要任务是什么?
    解:内存管理的主要功能有内存分配、内存保护、地址映射和内存扩充。各部分的主要任务为:①内存分配,为每道程序分配内存;②内存保护,确保每道程序仅在自己的内存空间运行,彼此互不干扰;③地址映射,将地址空间的逻辑地址转换为内存空间对应的物理地址;④内存扩充,即从逻辑上扩充内存,实现请求调入功能和置换功能等。
  19. 设备管理有哪些主要功能? 它们的主要任务是什么?
    解:设备管理的主要功能包括缓冲管理、设备分配、设备处理以及设备虚拟等。各部分的主要任务为:①完成用户提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作;②提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
  20. 文件管理有哪些主要功能? 它们的主要任务是什么?
    解:文件管理的主要功能有:文件存储空间的管理、目录管理、文件的读/写管理和保护。其主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件安全。
  21. 现代OS的新功能有哪些?
    解:现代OS是在传统OS的基础上发展而来,它除了具有传统OS的功能外,还具有保障系统安全、支持用户通过联网获取服务和可处理多媒体信息等功能。
  22. 什么是微内核OS?它具有哪些优点?
    解:微内核OS具有如下4个特征:①足够小的内核;②基于客户/服务器模式;③应用策略与机制分离原则;④采用面向对象技术。
    微内核OS的主要优点包括:①提高了系统的可扩展性;②增强了系统的可靠性和可移植性;③提供了对分布式系统的支持;④融入了面向对象技术。
  23. 外核OS的基本思想是什么?
    解:外核OS的基本思想是:内核不提供传统OS的进程、虚拟存储等抽象事物,而是专注于物理资源的隔离(保护)与复用。具体来说,在基于外核结构的OS中,内核负责保护系统资源,而硬件资源的管理职责则委托给了应用程序,这样,OS就可以做到在保证资源安全的前提下,减少对应用程序的限制,充分满足应用程序对硬件资源的不同需求。
  24. 什么是系统调用? 系统调用与一般用户程序和库函数有何区别?
    解:系统调用是OS提供给程序员的唯一接口。程序员利用系统调用,在源程序层面动态请求和释放系统资源,并调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个“黑箱子”,对用户屏蔽了OS的具体动作而只提供有关的功能。
    系统调用与一般用户程序、库函数的区别在于:①系统调用(程序)在内核态执行,调用它们时需要一个类似于硬件中断处理机制的中断处理机制来提供系统服务;②普通的用户程序是直接为用户完成某特定功能而设计的,他们一般在用户态执行;③库函数是把函数放到库里供别人使用的一种方式,是面向应用开发、方便人们编程的。④
  25. 设有3道程序A、B、C,它们按照优先次序(A→B→C)顺序执行,它们的计算时间和I/O操作时间如表1-1-1所示,假设3道程序以串行方式使用相同的设备进行I/O操作,试画出单道程序运行和多道程序运行的时间关系图,并计算完成这3道程序所须花费的时间。
    alt text
    解:
  26. 一个多道批处理系统中仅有 P_1 和 P_2 两个作业,P_2 比 P_1 晚5ms到达,它们的计算和I/O操作顺序如下。
    P_1:计算60ms,I/O操作80ms,计算20ms。
    P_2:计算120ms,I/O操作40ms,计算40ms。
    不考虑调度和切换时间,请计算完成两个作业需要的最少时间。
    解:
  27. OS的概念、特征和功能是什么?
    解:(1). OS是一组控制盒管理计算机硬件和软件资源、合理地对各类作业进行调度以方便用户使用计算机的程序集合。OS是配置在计算机硬件上的第一层系统软件,是对硬件系统的首次扩充;是硬件系统和应用软件间的桥梁;是用户让计算机硬件进行交互的接口;是计算机系统资源的管理者。
    (2). OS的4个特征:并发、共享、虚拟、异步。①并发:一段时间间隔内多个进程(线程)并发执行,是宏观上的并行,微观上的串行。②共享:系统中的资源可供内存中多个并发执行的进程或线程共同使用。③虚拟:通过某种技术将物理实体变为若干个逻辑上的对应物。④异步:进程以人们不可预知的速度向前推进,每次运行只要环境相同,则结果必定一致。
    (3). OS的5大功能:处理机管理、存储器管理、设备管理、文件管理、接口管理。①处理机管理:进程(线程)是处理机调度的单位,因此对外处理器的管理实际上是对进程(线程)的管理。②存储器管理:内存的分配与回收、地址转换、虚拟内存的实现等。③设备管理:设备的分配与回收、缓冲区管理、磁盘调度、设备虚拟等。④文件管理:文件存储空间的管理、文件目录管理、文件共享与保护等。⑤接口管理:用户接口、程序接口、命令接口和网络接口。
  28. 若某计算问题的执行情况如图1-1-6所示。则请回答下列问题。
    (1)叙述该计算问题中处理机、输入机和打印机是如何协同工作的。
    (2)计算在图1-1-6所示执行情况下处理机的利用率。
    (3)简述处理机利用率不高的原因。
    (4)请画出能提高处理机利用率的执行方案。
    alt text
    解:

线程进程