草庐IT

【第一章 | 操作系统概述】《操作系统 慕课版》课后答案 + 复习

Graskli 2023-04-21 原文

目录

| 本章概念

| 本章算法

单道批与多道批的图像绘制

利用率的计算与分析 

| 课后简答题


| 本章概念

1.OS的作用 作为用户与计算机硬件系统之间的接口 | 计算机系统资源的管理者 | 对计算机资源的抽象。OS的目标是:方便性 有效性 可扩充性 开放性

2.虚拟机 覆盖了I/O软件的设备称为扩充机器或虚拟机

3.OS的概念 铺设在计算机硬件上的多层软件的集合。OS是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合

4.推动OS发展的动力 提高计算机系统资源利用率 | 方便用户 | 器件不断更新换代 | 计算机体系结构不断发展 | 不断提出新的应用需求

5.OS的发展历程

  • 【1945年 人工操作方式】

  • 【20世纪50年代 脱机 I/O 】

    运作: 解决人机矛盾以及CPU与I/O之间速度不匹配的矛盾,程序和数据的输入输出都是在脱离主机的情况下完成的。

    联机 I/O : 在主机直接控制下进行的 I/O。

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

  • 【20世纪50年代中期 单道批处理系统】

    运作:把一批作业以脱机IO方式输入到磁带、在系统配上监督程序,在程序控制下,作业被一个一个完成,在内存中始终只保存一道作业。

    优点:提高系统资源利用率和系统吞吐量。

    缺点:仍未能充分利用系统资源,造成计算机内存的浪费

  • 【20世纪60年代中期 多道批处理系统】

    运作:作业先放到外存,排成一个队列(后备队列),由作业调度程序按照一定算法从队列选择若干个作业调入队列,使它们共享CPU和系统中的各种资源

    优点:资源利用率高、系统吞吐量大、平均周转时间长、无交互能力

    待解决的问题:征用处理机问题、内存分配与保护、IO设备分配、文件组织与管理问题、作业管理、用户与系统的接口

  • 【分时系统】

    发展原因:满足用户对于人机交互的要求

    运作:为了实现人机交互,必须放弃原批处理系统的运行方式,而采用:①作业直接进入内存,因为作业在磁盘上无法运行;②采用轮转运行,以保证每个作业都有机会运行,因此引入了时间片的概念

    特征:多路性(多终端连到同一主机上)、独立性(各自终端互不干扰)、及时性(响应所需时间为1-3s)、交互性

  • 【实时系统】

    定义:OS能及时响应外部事件的请求,在规定时间内完成对事件的处理,并控制所有实时任务协调一致地运行

    实时OS的类型:工业控制OS、信息查询OS、多媒体OS、嵌入式OS

    实时任务的类型:周期性 / 非周期性实时任务、硬实时任务(Hard real time,HRT)、软实时任务 SRT (上述四个任务类型,都伴随截止时间)

    特征:多路性(周期性对多路现场信息采集,对多个执行机构进行控制)、独立性(各自终端互不干扰)、及时性(响应所需时间为毫秒级)、交互性、可靠性

    实时系统具有的两个基本特征是:及时性、可靠性

6.操作系统基本特性

  • 并发(并行是同一时刻发生,并发是同一时间间隔发生):

    概念:宏观上多个程序同时运行,但微观上每一时刻只有一个程序运行。我们所说的并发,指的一般是进程的并发

  • 共享:

    概念:OS的共享,指的是资源的复用:供内存中多个并发执行的进程共同使用(即限定了时间,又限制了地点)

    类型:互斥共享(A访问完后B才能访问)、“同时”共享(宏观上一起用,微观上交替用)

    并发和共享是多任务OS最基本的两个特征,它们互为对方存在的条件。资源的共享是以进程的并发执行为条件的;同时,若不能对资源共享进行协调,则会影响并发的速度

  • 虚拟:通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能。通过时分复用和空分复用技术来实现

  • 异步:先进入内存的作业可能后完成,后进入的可能先完成:即进程的推进速度无法预知,此即为异步性

7.操作系统的主要功能

  • 处理机管理功能

    本质:传统多道程序系统中,处理机的分配和运行以进程为基本单位,因而对处理机的管理可归结于对进程的管理。

    功能:进程控制、同步、通信、调度

  • 存储器管理功能

    功能:内存分配与回收(静态、动态分配)、内存保护(①各用户程序只在自己内存运行,②不允许用户访问OS程序和数据)、地址映射、内存扩充(虚拟存储技术:请求调入功能、置换功能)

  • 设备管理功能

    功能:缓冲管理、设备分配、设备处理

  • 文件管理功能

    功能:文件存储空间管理、目录管理、文件读写管理和保护

  • 接口管理功能

    功能:OS向用户提供了“用户与OS之间的接口”,分为用户接口(联机用户接口、脱机用户接口、图形用户接口)、程序接口

8.操作系统的结构

  • 简单结构

  • 模块化结构:

    优点:提高OS设计的正确性、可理解性、易维护性、可适应性,加速OS开发过程

    缺点:接口规定很难满足划分后,模块对于接口的实际需求;B决定必须建立在A决定的基础上,没有可靠决定顺序,容易造成决定的无序性

  • 分层式结构:

    优点:能保证正确性、易维护性、可扩展性

    缺点:系统效率低

  • 微内核结构:

    概念:足够小的内核、基于客户/服务器的模式、采用策略和机制分离的原则、采用面向对象技术;

    功能:进程(线程)管理、低级存储器管理、中断和陷入处理(在微内核OS中,只有很小一部分的属于机制的放入了为内核中,另外绝大部分的都放在了微内核外的各种服务器中)

    优点:提高系统扩展性、可靠性、可移植性,提供了对分布式系统的支持,融入了面向对象技术。操作系统可仅通过调整策略来适应不同应用的需求

    存在的问题:因为客户和服务器间又消息传递,因此相比于早期的OS,微内核OS的运行效率有所降低(内核大则效率高但占用空间也大,反之效率低但是占空间小)

  • 外核结构:

    概念:内核不提供传统OS的进程、虚拟存储器等抽象事物,而是专注于物理资源的隔离(保护)和复用,即非常小的内核负责保护系统资源,而硬件资源的管理职责则委托给应用程序。将原本属于OS内核的功能以库的形式提供给用户

9.系统调用

  • 概念:使应用程序可以通过系统调用来简介调用OS中的相关过程,进而取得相应的服务

  • 系统调用是通过中断机制实现的

  • 区别于一般的过程调用:

    ①运行在不同的系统状态:系统调用的调用程序运行在用户态,而被调用程序运行在内核态

    ②因为调用和运行的系统状态不同(一个是用户态,一个是内核态),因此不允许由调用过程直接转向被调用过程,需要通过软中断机制先由用户态转为内核态,经内核分析后才能转向相应的系统调用处理子程序

    ③返回问题:每一次调用需要判断优先级

    ④嵌套调用:系统调用对于嵌套调用的深度有一定限制,但是一般的过程调用则没有

  • 系统调用的类型:

    ①进程控制类系统调用

    ②文件操纵类系统调用

    ③进程通信类系统调用


| 本章算法

单道批与多道批的图像绘制

 单道批:IO、计算只能执行一个

多道批:IO、计算可以并发执行

 


利用率的计算与分析 

利用率 = 利用时间 / 总时间


| 课后简答题

 

 

================================The END=====================================

有关【第一章 | 操作系统概述】《操作系统 慕课版》课后答案 + 复习的更多相关文章

  1. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  2. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  5. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  6. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  7. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  8. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  9. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  10. ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组? - 2

    a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],

随机推荐