第一章、OS引论1

1.1 操作系统的目标和作用

1.1.1 操作系统的目标

  • 计算机上安装操作系统,主要目标是:方便性、有效性、可扩充性和开放性。
    • 方便性:方便用户,使计算机变得易学易用
    • 有效性:提高系统资源(资源指CPU(处理机),存储器,文件(数据和程序),外设)利用率和系统的吞吐量(吞吐量为单位时间完成的作业数量)
    • 可扩充性:是为了适应计算机硬件、体系结构以及计算机应用发展,OS从早期的无结构化⇒\Rightarrow模块化结构⇒\Rightarrow层次化结构⇒\Rightarrow微内核结构。如今的微内核结构可以方便添加新的功能和模块,易于扩充。
    • 开放性:系统遵循世界标准规范,可以彼此兼容,方便互联。

1.1.1 操作系统的作用

下面我们从用户角度,资源管理角度和资源抽象角度进行叙述。

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

    用户可以通过三种方式使用计算机

    • 命令方式
    • 系统调用方式
    • 图形—窗口方式

  1. OS作为计算机系统资源的管理者(资源管理角度)

    ​ 计算机系统的资源分为⟹\Longrightarrow处理机(CPU),存储器, 外设(I/O设备)以及文件(数据和程序), OS的主要功能也是对这四类资源进行有效的管理。

    • CPU的分配和控制
    • 内存的分配和回收
    • I/O设备的分配和操控
    • 文件的存取、共享和保护。
  2. OS实现了对计算机资源的抽象(资源抽象角度)

    ​ 操作系统OS是铺设在计算机硬件上的多层软件的集合,不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。

    虚拟机说白了就是:相同硬件基础上,通过软件进行扩充

1.1.3 推动操作系统的主要动力

  1. 不断提高计算机资源利用率

  2. 方便用户

  3. 器件的迭代更新

    硬件推动软件,软件(远远)落后于硬件

  4. 计算机体系结构的不断发展

    单处理机系统–>多处理机系统,以及计算机网络的出现,OS也不断发展

  5. 人们不断提出新的应用需求

1.2 操作系统的发展过程

操作系统默认不包括单任务操作系统(已经被淘汰了)

1.2.1 未配置操作系统的计算机系统

  1. 人工操作方式

    • 人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带装入纸带输入机,再启动它们将程序和数据输入计算机,然后启动计算机运行,当程序运行完毕并取走计算结果之后,才让下一个用户上机。
    • 缺点如下
      • 用户独占全机。此时,计算机及其全部资源只能由上机用户独占。
      • CPU等待人工操作。
      • 严重降低了计算机资源的利用率,此即所谓的人机矛盾。随着CPU速度的提高和系统规模的扩大,人机矛盾变得日趋严重。此外,随着CPU速度的迅速提高而I/O设备的速度却提高缓慢,这又使CPU与I/O设备之间速度不匹配的矛盾更加突出
  2. 脱机输入输出方式

    • 事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的数据输入到磁带上。当CPU需要这些程序和数据时,再从磁带上将其高速地调入内存

    如下图所示:

    • 由于程序和数据的输入和输出都是在外围机的控制下完成的,即它们是在脱离主机的情况下进行的,故称为脱机输入/输出方式;反之,在主机的直接控制下进行输入/输出的方式称为联机 。
    • 优点
      • 减少了CPU的空闲时间,缓和了人机矛盾。
      • 提高了I/O速度。当CPU在运行中需要数据时,是直接从高速的磁带或磁盘上将数据调入内存的,不再是从低速I/O设备上输入,极大地提高了I/O速度,从而缓和了CPU和I/O设备速度不匹配的矛盾,进一步减少了CPU的空闲时间。

1.2.2 单道批处理系统

  1. 单道批处理系统的处理过程(Simple Batch Processing System)

    单道批处理系统是最早出现的一种OS。严格地说,它只能算作是OS的前身而并非是现在人们所理解的OS。

  1. 单道批处理提系统的特点与缺点
  • 自动性。在顺利情况下,在磁带上的一批作业能自动地逐个地依次运行,而无需人工干预
  • 顺序性。磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序,在正常情况下应完全相同,亦即先调入内存的作业先完成
  • 单道性。监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。即,内存中仅有一道程序运行

1.2.3 多批处理系统(Multiprogrammed Batch Processing System)

  1. 多道程序设计的基本概念

    单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差

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

    • 提高CPU的利用率

  • 可提高内存和I/O设备利用率

  • 增加系统吞吐量

    • 吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。
  1. 多道批处理系统的优缺点

    1. 资源利用率高
      • 由于在内存中驻留了多道程序,它们共享资源,可保持资源处于忙碌状态,从而使各种资源得以充分利用。
    2. 系统吞吐量大
      • 第一,CPU和其它资源保持“忙碌”状态;
      • 第二,仅当作业完成时或运行不下去时才进行切换,系统开销小。
    3. 平均周转时间长
      • 作业的周转时间(cycling time)) : 从作业进入系统开始直至其完成并退出系统为止所经历的时间。
      • 由于作业要排队,依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。
    4. 无交互能力
      • 用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,不利于修改和调试程序。
  2. 多道批处理系统需要解决的问题

    ​ 多道批处理系统是一种有效、但十分复杂的系统。为使系统中的多道程序间能协调地运行,必须解决下述一系列问题。

    1. 处理机管理问题

      • 多道程序之间,应如何分配共享的处理机,又应在何时收回
      • 既能满足程序运行需要,又提高处理机利用率
    2. 内存分配和保护问题

      • 为每道程序分配必要的内存空间,不致因相互重叠而丢失信息

      • 防止因某道程序出现异常情况而破坏其它程序

    3. I/O设备分配问题

      • 如何分配这些I/O设备,如何做到既方便用户对设备的使用,又能提高设备的利用率
    4. 文件组织和管理问题

      • 应如何组织程序和数据,才能使它们既便于用户使用,又能保证数据的安全性和一致性
    5. 作业管理问题(调度)

      • 对于系统中的各种应用程序,有各种各样作业。其中有些作业既重要又紧迫;而有的作业则要求系统能及时响应,这时应如何组织这些作业
    6. 用户与系统的接口问题

1.2.4 分时系统

  • 分时系统的引入

    分时系统(Time Sharing System)与多道批处理系统之间有着截然不同的性能差别,它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率

    ​ 经常应用于查询系统中,满足许多查询用户的需要。用户的需求具体表现在以下几个方面:

    • 人-机交互, eg:以边运行边修改的方式,对程序中的错误进行修改
    • 共享主机, eg : 计算机非常昂贵,多个用户共享一台,而且用户在使用机器时应能够像自己独占计算机一样
    • 便于用户上机, eg : 用户希望能通过自己的终端直接将作业传送到机器上进行处理,并能对自己的作业进行控制
  • 分时系统中实现的关键问题

    • 及时接收

      • 系统中配置一个多路卡

      • 每个终端配置一个缓冲区,用来暂存用户键入的命令

    • 及时处理

      • 各个用户的作业都必须在内存中,且应能频繁地获得处理机而运行。批处理系统的运行方式无法实现。
      • 作业应直接进入内存,规定每个作业只运行一个很短的时间
      • 在不长的时间(如3秒)内能使所有的用户作业都执行一次
      • 从而,使用户的请求得到及时响应
  • 分时系统的特征

    • 多路性
      • 允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。
      • 宏观上,是多个用户同时工作,共享系统资源;而微观上,则是每个用户作业轮流运行一个时间片。
      • 多路性即同时性,它提高了资源利用率,降低了使用费用,从而促进了计算机更广泛的应用。
    • 独立性
      • 每个用户各占一个终端,彼此独立操作,互不干扰
    • 及时性
      • 用户的请求能在很短的时间内获得响应。
    • 交互性
      • 用户可通过终端与系统进行广泛的人机对话。
      • 其广泛性表现在:用户可以请求系统提供多方面的服务,如文件编辑、数据处理和资源共享等。

1.2.5 实时系统

所谓“实时”,是表示“及时”,

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

  • 实时系统的类型

实时控制:

​ 当把计算机用于生产过程的控制,以形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,进而自动地控制相应的执行机构,使某些(个)参数(如温度、压力、方位等)能按预定的规律变化,以保证产品的质量和提高产量。通常把用于进行实时控制的系统称为实时系统。

实时信息处理:

​ 人们把用于对信息进行实时处理的系统称为实时信息处理系统。

​ 该系统由一台或多台主机通过通信线路连接到成百上千个远程终端上,计算机接收从远程终端上发来的服务请求,根据用户提出的请求对信息进行检索和处理,并在很短的时间内为用户做出正确的响应。

​ 典型的实时信息处理系统有早期的飞机或火车的订票系统、情报检索系统

  • 实时任务的类型

    • 按照是否呈现出周期性划分
      • 周期性实时任务。
        • 即外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
      • 非周期性实时任务。
        • 外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间(Deadline)。
        • 截止时间分为开始截止时间和完成截止时间。
    • 根据对截止时间的要求来划分
      • 硬实时任务(Hard real-time Task)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果
      • 软实时任务(Soft real-time Task)。它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。
  • 实时系统与分时系统特征的比较

    • 多路性。实时信息处理系统也按分时原则为多个终端用户服务。实系统的多路性则主要表现在系统周期性地对多路现场时控制信息进行采集,以及对多个对象或多个执行机构进行控制。而分时系统中的多路性则与用户情况有关,时多时少。多路性有着些许差别
    • 独立性。实时信息处理系统中的每个终端用户在向实时系统提出服务请求时,是彼此独立地操作,互不干扰;而实时控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰。
    • 及时性。实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。
    • 交互性。实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理和资源共享等服务。 即,分时系统的交互性更强。
    • 可靠性。分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是无法预料的灾难性后果,所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性。即,实时系统要求更高的可靠性

1.2.6 微机操作系统的发展

主要几个大公司 : IBM, 微软(MS), Apple

  • 单用户单任务操作系统

    ​ 只允许一个用户上机,且只允许用户程序作为一个任务运行。

    ​ 这是最简单的微机操作系统,主要配置在8位和16位微机上。最有代表性的单用户单任务微机操作系统是CP/M(8bitOS)、MS-DOS

    不但有MS Doc,其实还有 一个 IBM Dos

  • 单用户多任务操作系统

    只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能。

    主要是 Windows

  • 多用户多任务操作系统

    允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量

    • Unix,因为各个大公司各自为政,造成了最大问题就是不兼容
    • Linux 是 Unix 的一个变种,源码公开,免费,没有版权问题,Linux只能通过维护、提供服务赚钱

1.3 操作系统的基本特性

1.3.1 并发性(concurrence)

并行与并发

  • 并行性和并发性(Concurrence)是既相似又有区别
    • 并行性是指两个或多个事件在同一时刻发生
    • 并发性是指两个或多个事件在同一时间间隔内发生
    • 并行的要求更高,需要多核。并发包括并行。

进程

  • 为使多个程序能并发执行,系统必须分别为每个程序建立进程(Process)
  • 程序的每一次执行形成一个进程,进程是指在系统中能独立运行,并作为资源分配的基本单位,是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
  • 多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源。
  • 一个进程包括多个线程
  • 在引入线程的OS中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位

1.3.2 共享性(sharing)

互斥共享方式

同时访问方式

1.3.3 虚拟性(virtual)

时分复用技术

  1. 虚拟处理机技术

  2. 虚拟设备技术

空分复用技术

1.3.4 异步性(asynchronism)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 858. 镜面反射(最小公倍数/最大公约数)

文章目录1. 题目2. 解题1. 题目 有一个特殊的正方形房间,每面墙上都有一面镜子。 除西南角以外,每个角落都放有一个接受器,编号为 0, 1,以及 2。 正方形房间的墙壁长度为 p,一束激光从西南角射出&#xf…

Ubuntu从零安装 Hadoop And Spark

安装 linux 以Ubuntu为例 选择镜像,虚拟机安装 虚拟机下,直接安装镜像即可,选择好自己的配置,一定要注意路径名选好,而且和你虚拟机的名称匹配,这里我的镜像是 ubuntu-20.04.2.0-desktop-amd64.iso 切换…

04.卷积神经网络 W2.深度卷积网络:实例探究

文章目录1. 为什么要进行实例探究2. 经典网络3. 残差网络 ResNets4. 残差网络为什么有用5. 网络中的网络 以及 11 卷积6. 谷歌 Inception 网络简介7. Inception 网络8. 使用开源的实现方案9. 迁移学习10. 数据增强 Data augmentation11. 计算机视觉现状作业参考: 吴…

动态规划之最长上升子序列模型

动态规划分为很多模型,比如说数字三角形模型,最长上升子序列模型,背包模型,状态机模型,状态压缩,区间dp,树形dp等等 下面,我就Acwing提高课中,最长上升子序列模型进行了整…

LeetCode 900. RLE 迭代器(模拟/二分查找)

文章目录1. 题目2. 解题2.1 直接模拟2.2 二分查找1. 题目 编写一个遍历游程编码序列的迭代器。 迭代器由 RLEIterator(int[] A) 初始化,其中 A 是某个序列的游程编码。 更具体地,对于所有偶数 i,A[i] 告诉我们在序列中重复非负整数值 A[i …

html-css练习题(系统提示)

代码赏析&#xff1a;<!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible&qu…

机器学习算法--线性回归分析(单元和多元)

关键词 分类模型、回归模型 存在序的离散属性、不存在序的离散属性 有监督的机器学习 回归的分类&#xff08;输入变量数目&#xff0c;输入变量和输出变量的关系&#xff09; 已知数据集&#xff0c;未知参数 均方误差最小化&#xff0c;最小二乘法 一元线性回归 多元线…

LeetCode 740. 删除与获得点数(排序+动态规划)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 nums &#xff0c;你可以对它进行一些操作。 每次操作中&#xff0c;选择任意一个 nums[i] &#xff0c;删除它并获得 nums[i] 的点数。之后&#xff0c;你必须删除每个等于 nums[i] - 1 或 nums[i] 1 的元素。 开始你拥有…

html-css练习题 (注册表单)

代码赏析&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta http-equiv"X-UA-Co…

虚拟机安装 服务器 Ubuntu Server20.04.2

虚拟机安装 服务器 Ubuntu Server20.04.2 下载地址 VMware创建新的虚拟机 首选选择典型 稍后安装操作系统&#xff0c;并点击下一步 选择Linux Ubuntu64位 命名虚拟机 指定虚拟机的容量 点击确定之后开启虚拟机 选择自己下载的镜像文件 打开虚拟机进行配置 单击…

LeetCode 838. 推多米诺(模拟)

文章目录1. 题目2. 解题1. 题目 一行中有 N 张多米诺骨牌&#xff0c;我们将每张多米诺骨牌垂直竖立。 在开始时&#xff0c;我们同时把一些多米诺骨牌向左或向右推。 每过一秒&#xff0c;倒向左边的多米诺骨牌会推动其左侧相邻的多米诺骨牌。 同样地&#xff0c;倒向右边…

html-css练习题(天天生鲜静态网页制作)文末有完整版代码地址链接

一、前言&#xff1a; 前端学习经典练手网页&#xff0c;重新整理网页版代码&#xff0c;如果你是初学者&#xff0c;请试着做一下这个网页 素材&#xff1a;文末完整版代码中。。。。。。 二、效果图&#xff1a; 三、主要需求&#xff1a; 1.login最外侧盒子设定高29 背景…

xshell连接Linux Server

由于server环境下无法使用vmtools&#xff0c;所以推荐使用shell工具进行链接使用。下载的内容源自果核&#xff0c;使用方法&#xff1a; xhell压缩包里面有crack目录&#xff0c;将nslicense.dll文件覆盖到软件目录 xhellplus&#xff0c;将nslicense.dll文件分别覆盖到软件X…

小案例:搭建简易版王者荣耀英雄购买商城网页版

目录 一、网页赏析&#xff1a; 二、代码分三部分&#xff1a; 1、html代码&#xff1a; 2、main.css赏析&#xff1a; 3、初始化reset.css代码&#xff1a; 三、主要素材下载地址&#xff1a; 一、网页赏析&#xff1a; 二、代码分三部分&#xff1a; 1.html 2.初始化…

2020云栖大会编程限时抢答赛 - 早中晚3场题解

文章目录1. 云栖大会限时抢答赛 - 早间场2. 云栖大会限时抢答赛 - 午间场3. 云栖大会限时抢答赛 - 晚间场1. 云栖大会限时抢答赛 - 早间场 题目链接 该场次题目在 LeetCode 上有原题&#xff0c;题解链接如下&#xff1a; LeetCode 862. 和至少为 K 的最短子数组&#xff08…

RSA公钥体系 与在 ssh中免密的登陆的应用

一、秘钥体系 第一部分查看书籍为 北京大学出版社出版的 丘维声老师的 数学思维方式与创新 在之前安全协议的讲解中&#xff0c;很多的协议都是用了秘钥的这一概念&#xff0c;相信很多同学对这不求甚解&#xff0c;下面我来系统的介绍秘钥体系&#xff0c;并且证明一下如今…

用Sass创建MetaFizzy效果

来源&#xff1a;GBin1.com Hugo发现了一个绚丽的css效果应用于web中并教会你如何聪明的重建和使用它。两天前&#xff0c;我看见笔者Hugo在css帮助下重写MetaFizzy的效果&#xff0c;Hugo帮助我们找到了一个用于理解Sass的JavaScript源代码。但我认为他的代码仍有可改之处&…

LeetCode 823. 带因子的二叉树(动态规划)

文章目录1. 题目2. 解题1. 题目 给出一个含有不重复整数元素的数组&#xff0c;每个整数均大于 1。 我们用这些整数来构建二叉树&#xff0c;每个整数可以使用任意次数。 其中&#xff1a;每个非叶结点的值应等于它的两个子结点的值的乘积。 满足条件的二叉树一共有多少个&…

动态规划问题之背包模型(18题)

背包问题是动态规划问题的一大类型&#xff0c;下面我们对这个进行总结。 以 Acwing y中总结的 几个类型&#xff0c;我写了几个题解 应用知识点 01背包、完全背包 空间压缩的写法多维费用的背包问题&#xff0c;以及状态的不同表示对复杂度的 影响完全背包问题的三种求解方法…

LeetCode LCP 22. 黑白方格画

文章目录1. 题目2. 解题1. 题目 小扣注意到秋日市集上有一个创作黑白方格画的摊位。 摊主给每个顾客提供一个固定在墙上的白色画板&#xff0c;画板不能转动。 画板上有 n * n 的网格。绘画规则为&#xff0c;小扣可以选择任意多行以及任意多列的格子涂成黑色&#xff0c;所选…