操作系统1——操作系统引论

本系列博客重点在深圳大学操作系统课程的核心内容梳理,参考书目《计算机操作系统》(有问题欢迎在评论区讨论指出,或直接私信联系我)。


梗概

本篇博客主要介绍操作系统第一章操作系统引论的相关知识。

目录

一、操作系统概述

二、操作系统的目标与作用

三、操作系统发展历程

四、操作系统基本特征

五、操作系统主要功能

六、操作系统的结构设计

七、一些例题


一、操作系统概述

操作系统不直接解决最终具体应用问题,也不负责编译源程序...

操作系统为你完成所有“硬件相关、应用无关” 的工作,以给你方便、效率、安全

  • 定义

操作系统是一组有效控制和管理计算机系统的硬件和软件资源、合理地组织计算机工作流程以及方便用户的程序集合。

二、操作系统的目标与作用

目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目标有以下几点:          

1. 方便性          

2. 有效性          

3. 可扩充性        

4. 开放性 

而对于操作系统的作用,不同的角度出发有不同的观点。

1、从计算机系统组成观点――操作系统是系统软件 

计算机系统组成:      

  • 软件:应用软件、系统软件(操作系统、语言处理系统和常用的例行服务程序)
  • 硬件:输入/输出(I/O)设备、存储器(内存) 、中央处理器(CPU)    

2、从资源管理程序观点――操作系统是系统资源(处理器、存储器、 I/O设备以及信息(数据和程序)四类)管理者

3、从软件分层、扩充机器的观点――操作系统是扩充裸机的第一层系统软件(虚拟机)

4、从服务用户的观点―― 操作系统是用户与裸机之间接口

操作系统的发展动力主要是:

1.不断提高计算机资源利用率 2. 方便用户 3. 器件的不断更新换代 4. 计算机体系结构的不断发展 

三、操作系统发展历程

操作系统发展历程主要是:1、人工操作方式 2、脱机输入/输出(Off-Line I/O)方式(单道批处理->多道批处理->分时系统->实时系统)

单道批处理是内存中仅有一道作业,多道批处理为了提高资源利用率和系统吞吐量多作业并行,为了满足用户需求分时系统(多用户、多任务)出现了,主要需求是(1) 人—机交互、(2) 共享主机、(3) 便于用户上机。其中,最关键的问题是如何使用户能与自己的作业进行交互

分时系统的重要指标是响应时间,用户发生终端命令到系统开始作出响应间的时间间隔。假设分时系统中用户数为n,每个用户的运行时间片为q,则系统的响应时间为T=n×q。每个用户分到的时间片q由二部分组成,用于对换时间S和用于真正处理时间T(处理)。

T = n × q

q = S + T(处理)

分时系统中时间片q的选择是一个复杂和关键的任务。

  • 如时间片选得过大,造成响应时间不变时用户数减少,或造成响应时间过长
  • 当时间片过小时,在一个时间片内切换开销相对增加,一个进程相对要花费更多的时间片才能运行结束,一个进程在系统中的周转时间大大增长
  • 最佳的时间片值应既能使分时用户得到好的响应时间,同时又要使在一个时间片内切换开销相对较小可忽略。

总的来说,分时系统特点如下:

  • 交互性:用户与系统进行人机对话。
  • 多路性:多用户同时在各自终端上使用同一CPU。
  • 独立性:用户可彼此独立操作,互不干扰,互不混淆。
  • 及时性:用户在短时间内可得到系统的及时回答。

而对于实时系统,所谓“实时”,是表示“及时”,而实时系统(Real-Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

对于实时任务,一般都联系着截止时间:

① 开始截止时间——任务在某时间以前必须开始执行;

② 完成截止时间——任务在某时间以前必须完成。

根据截止时间划分任务,则有:

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

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

四、操作系统基本特征

1、并发:

并发性是指两个或多个事件在同一时间间隔内发生

Tips:并行性是指两个或多个事件在同一时刻发生

单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。多CPU系统可以并行

2、共享:

在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。一般有(1)互斥共享(打印机、磁带机)、(2)同时访问(磁盘) 两种。

3、虚拟:

操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物(虚拟CPU、虚拟内存、虚拟外部设备等)。

比如虚拟处理机,通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一台处理机的。虽然只有一台处理机,但它能同时为多个用户服务,使每个终端用户都认为是有一个CPU在专门为他服务。即把一台物理上的CPU虚拟为多台逻辑上的CPU

4、异步性:

在多道程序环境下,允许多个进程并发执行, 但只有进程在获得所需的资源后方能执行。由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。进程是以人们不可预知的速度向前推进,此即进程的异步性。

五、操作系统主要功能

1、处理机管理功能:

  • 进程控制:进程创建、资源分配与管理、状态转换、撤销
  • 进程同步:使多进程有条不紊按一定顺序运行(通过互斥与同步机制)
  • 进程通信:多进程间交换信息(直接通信或间接通信)
  • 进程调度:如何从队列中选择执行进程

2、存储器管理功能:

  • 内存分配:静态与动态内存分配(空间是否确定、不可变)
  • 内存保护:保每道用户程序都只在自己的内存空间内运行,彼此互不干扰
  • 地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
  • 内存扩充:借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多; 或者是让更多的用户程序能并发运行(请求调入、置换)

3、设备管理功能:

  • 缓冲管理:设置缓冲区(单、双),缓解设备与CPU的矛盾
  • 设备分配:根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备分配策略,为之分配其所需的设备
  • 设备处理:用于实现CPU和设备控制器之间的通信

4、文件管理功能:

  • 文件存储空间管理:文件系统为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的运行速度
  • 目录管理:为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取
  • 文件的读/写管理和保护:顾名思义

5、用户接口:

  • 命令接口:(1)联机用户接口:用户可通过先后键入不同命令的方式,来实现对作业的控制(2)脱机用户接口:委托系统代替用户对作业进行控制和干预
  • 程序接口:用户程序取得操作系统服务的惟一途径,主要使用系统调用
  • 图形接口:可用鼠标或通过菜单和对话框,来完成对应用程序和文件的操作

六、操作系统的结构设计

1. 软件的含义        

所谓软件,是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,该程序能够正确地处理信息的数据结构;作为规范软件,还应具有描述程序功能需求以及程序如何操作使用的文档。如果说,硬件是物理部件, 那么,软件则是一种逻辑部件,它具有与硬件完全不同的特点。

2. 软件工程的含义        

软件工程是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件;或者说,是采用工程的概念、 原理、 技术和方法,来开发与维护软件, 其目的是为了解决在软件开发中所出现的编程随意、软件质量不可保证以及维护困难等问题。

对于操作系统的结构,传统OS主要是一到三代(为了控制该软件的复杂性,在开发OS时,先后引入了分解、模块化、 抽象和隐蔽等方法),而把微内核的OS结构称为现代OS结构。

1、无结构操作系统:

OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构

2、模块化OS结构:

基于“分解”和“模块化”原则来控制大型软件的复杂度的。为使OS具有较清晰的结构,OS不再是由众多的过程直接构成,而是将OS按其功能划分为若干个具有一定独立性和大小的模块。 

  • 缺点:首先,在开始设计OS时,对模块的划分及对接口的规定并不精确, 而且还可能存在错误,因而很难保证按此规定所设计出的模块会完全正确, 这将使在把这些模块装配成OS时发生困难;其次,从功能观点来划分模块时,未能将共享资源和独占资源加以区别; 由于管理上的差异,又会使模块间存在着复杂的依赖关系使OS结构变得不清晰。

3、层次(layered)结构法:

将模块间无序调用变为有序调用,它把OS的所有功能模块,按功能流图的调用次序,排列成若干层,各层之间的模块只能是单向调用关系,即是只允许上层模块调用相邻下层模块。 

4、微内核技术OS:

所谓微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核。它与一般的OS(程序)不同, 它更小更精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。

微内核所提供的功能,通常都是一些最基本的功能,如进程管理、存储器管理、进程间通信、 低级I/O功能。 

七、一些例题

选1.在设计分时操作系统时,首先要考虑的是﹎﹎A﹎﹎;在设计实时操作系统时,首先要考虑的是﹎﹎B﹎﹎;在设计批处理系统时,首先要考虑的是﹎﹎C﹎﹎。

A、B、C:(1)灵活性和可适应性;(2)交互性和响应时间;(3)周转时间和系统吞吐量;(4)实时性和可靠性。

A:(2)B:(4)C:(3)

选2.为了提高计算机的处理机和外部设备的利用率,把多个程序同时放入主存储器,在宏观上并行运行是﹎﹎A﹎﹎;把一个程序划分成若干个同时执行的程序模块的设计方法是﹎﹎B﹎﹎;多个用户在终端设备上的交互方式输入、排错和控制其程序的运行是﹎﹎C﹎﹎;由多个计算机组成的一个系统,这些计算机之间可以通信来交换信息,互相之间无主次之分,它们共享系统资源,程序由系统中的全部或部分计算机协同执行,管理上述计算机系统的操作系统是﹎﹎D﹎﹎;有一类操作系统的系统响应时间的重要性超过系统资源的利用率,它被广泛地应用于卫星控制、导弹发射、飞机飞行控制、飞机订票业务等领域是﹎﹎E﹎﹎。 A--E:  ① 分时OS  ② 实时OS  ③ 批处理系统  ④  网络OS  ⑤  分布式OS  ⑥ 单用户OS    ⑦  多重程序设计  ⑧  多道程序设计  ⑨  并发程序设计

A: B:⑦ C:① D:④ E:②

首先,多道程序设计是为了提高CPU利用率充分发挥计算机各部件的并行性,第A空填8;B空的主要题眼在同时执行,和前面提到的宏观上并行不同,这是实实在在的利用多处理机实现了程序的并行执行,应该选7;C主要体现了分时操作系统的交互性,选1;D主要考察分布式OS和网络OS,这两个操作系统的主要区别是计算机之间是否有主次之分,选4;E体现了实时操作系统的及时性,故选2

猜你喜欢

转载自blog.csdn.net/weixin_51426083/article/details/131498612