【MOOC】华中科技大学操作系统慕课答案-单元作业+第1~2章开放性思考题

单元作业答案如果没大问题的话,多半是直接摘抄自PPT。

第一章 操作系统概述

单元作业(1)

  1. 站在普通用户的角度,总结操作系统有哪些基本功能?
  1. 提供操作界面;
  2. 控制程序运行;
  3. 管理系统资源;
  4. 配置系统参数。

‎2. ‏操作系统有哪4大核心功能?

  1. 进程管理:包括进程控制、进程调度、进程通信等。
  2. 内存管理:包括内存分配、内存共享、内存保护、虚拟内存等。
  3. 设备管理:包括设备的分配和调度、设备无关性、设备传输控制、设备驱动等。
  4. 文件管理:包括存储空间管理、文件的操作、目录的操作、文件和目录的存取权限管理等。

‍3. 操作系统有哪4个典型的发展阶段,各有什么特点?

  1. 手工操作(没有操作系统):
    结构特点:硬件用电子管、接线面板(按钮/开关);程序用二进制程序,使用纸带和卡片打孔控制程序。
    使用特点:程序的准备、启动和结束均由手工处理,繁琐耗时。
    缺点:CPU有效运行时间极低;用户独占;缺少交互。
  2. 单通道批处理系统:
    工作特点​:批量(可处理作业队列);自动(自动识别、装入和撤出);串行。
  3. 多通道批处理系统:
    ​工作特点:内存中同时存放多道程序;宏观上并行;微观上串行;作业处理时间长、交互能力差、运行过程不确定。
  4. 分时系统:
    ​工作特点:多路调制性(多用户联机使用同一台计算机);用户感觉独占计算机;及时响应用户的请求。

‌4. 多道批处理系统为什么工作效率比单道的高?

因为多通道处理系统在内存中存放了多道程序,当某道程序因为某种原因(例如执行I/O操作时)不能运行而放弃CPU时,操作系统便调度另一次程序投入执行。这样可以使CPU尽量忙碌,提高系统效率。
而单道批处理系统只能让CPU空闲等待。

  1. 分时技术与多道批处理都能完成多个程序的切换。这两种切换情形有什么差别?
  1. 分时技术轮流为每个程序提供超短时使用CPU的机会,每个程序都感觉到是“独占”CPU。
  2. 而多道程序系统是在内存中同时存放多道程序,它们都处于开始和结束之间,切换只在上一个程序暂时放弃占用或使用完毕CPU的时候发生。

开放性思考题

  1. 尽可能思考没有安装操作系统的计算机启动过程和结果?

计算机启动的过程应该是先检测硬件再检测硬件中的操作系统,如果没有BIOS,启动的结果可能是显示“Reboot and Select proper Boot device or Insert Boot Media in slected Boot device and press a key.”之类的未找到操作系统的提示。
如果有BIOS,应该会先进入BIOS,可以进行一些机器指令的操作,普通用户无法使用。
参考:https://www.chinafix.com/article-26996-1.html
https://www.cnblogs.com/quaint/articles/12535029.html

  1. ‎常见的虚拟机软件(例如VMware,VirtualPC等)能不能理解为操作系统?

虚拟机本身是一个软件,不是操作系统。
虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
而操作系统是管理计算机硬件与软件资源的计算机程序。

  1. 思考运行应用程序(例如记事本程序)需要操作系统提供哪些支持?
  1. 进程管理:比如记事本程序也是个进程,它被操作系统管理,操作系统会分配资源让它能够顺利运行。
  2. 内存管理:比如记事本程序需要内存资源,需要操作系统进行分配调度。
  3. 文件管理:比如记事本程序需要打开和读写文件,需要操作系统的文件管理功能。
  4. 设备管理:比如记事本程序需要与I/O设备交互。
  5. 网络管理:有些应用程序需要操作系统提供网络支持,如聊天软件。

‌4. Windows-7-64位操作系统的分时时间片是多少呢?Linux不同版本的时间片又是多少?请网上了解。

Windows-7-64:15 to 30 milliseconds。
参考:https://social.msdn.microsoft.com/Forums/vstudio/en-us/7b403121-f48b-40cd-9155-920a579c7b6b/timeslice-and-timer-precission
Linux:在传统的Linux上,时间SCHED_RR间隔为0.1秒。从Linux 3.9开始,该限制可通过/proc/sys/kernel/sched_rr_timeslice_ms文件进行调整,该文件的量子表示为毫秒值,默认值为100。
实时进程的默认Linux时间片在Linux内核中定义为RR_TIMESLICE位于include/linux/sched/rt.h中 。
/*
* default timeslice is 100 msecs (used only for SCHED_RR tasks).
* Timeslices get refilled after they expire. */
#define RR_TIMESLICE (100 * HZ / 1000)
请注意,为特定进程分配的实际量程可能与此值不同 :
[注:在v3或以上版本的linux的include/linux/sched/rt.h中可找到,均是100ms。但是v2或以下的没有这个头文件。]
参考:《如何知道Linux Scheduler时间片?》https://www.imooc.com/wenda/detail/595680
《如何知道Linux调度程序时间片?》https://zgserver.com/linux-5.html
《Linux源码/include/linux/sched/rt.h》
https://elixir.bootlin.com/linux/v5.4/source/include/linux/sched/rt.h

  1. ​网上尽可能了解Unix的演化历史,各个主流版本的名字和特点。

(1) Unix1~10:第一版UNIX是用PDP-7汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix,形成第三版UNIX。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。
1975年,UNIX发布了4、5、6三个版本。
1978年,已经有大约600台计算机在运行UNIX。
1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。
20世纪80年代相继发布的8、9、10版本只授权给了少数大学。
此后这个方向上的研究导致了九号项目的出现,这是一个新的分布式操作系统。
(2) Unix System Ⅲ分支:
1982年,AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。
这个新的UNIX商业发布版本不再包含源代码,所以加州大学柏克莱分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX和MicrosoftWindows。
(3) Unix BSD分支(含Linux):
其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,比尔·乔伊,在BSD基础上开发了SunOS,并最终创办了太阳计算机系统公司。
1991年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常见的Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先辈。
AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。1987到1989年,AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。
1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体了。
UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,最终Novell将SVR4的权利出售给了X/OPEN Consortium,后者是定义UNIX标准的产业团体。最后X/OPEN和OSF/1合并,创建了国际开放标准组织。由它定义的多个标准定义着什么是以及什么不是UNIX。
实际的UNIX代码则辗转到了圣克鲁兹作业,这家公司后来出售给了Caldera Systems。Caldera原来也出售Linux系统,交易完成后,新公司又被重命名为SCO Group。
参考:https://www.iteye.com/blog/wx1569009609-2472018

‍6. ‎网上尽可能了解多终端计算机的结构,工作过程?

结构:高性能主机(运算,CPU+内存)+多个终端(输入和显示)。
工作过程:主机采用分时技术轮流为每个终端服务。每个终端都感觉到是“独占”主机。

第二章 操作系统逻辑结构

单元作业

  1. 何为操作系统的逻辑结构?有哪几种典型逻辑结构?

​操作系统的逻辑结构即 OS 的设计和实现思路。
典型的有整体式结构、分层式结构、微内核结构。

  1. 分层结构的分层原则是什么?

​原则:​1. 层次之间的模块的依赖关系。层次之间只能单向依赖调用。
2. 单个层次的功能要尽可能独立。同一层的组件处于同一个抽象层次。
3. 分层架构中的层次越往下,其抽象层次就变得越通用,面向设备。
这些原则具体化如下:
硬件相关——最底层
外部特性——最外层
中间层——调用次序或消息传递顺序
共性的服务——较低层
活跃功能——较低层

  1. 微内核结构的特点是什么?

微内核结构的特点是由微内核+核外服务器构成,微内核只提供最基本的功能,核外服务器提供用户功能,面向服务。
1)有较高的灵活性和可扩充性
2)提高了操作系统的可靠性
3)更适合于分布式系统

  1. 何为CPU的态?定义态的作用什么?有哪些态?

CPU的态:CPU的工作状态。就是对资源和指令权限的描述。
定义态可以避免用户程序错误地使用特权指令,维护运行秩序,保证底层和重要的系统资源不被用户轻易破坏。具体规定为,当CPU处于用户态时,不允许执行特权指令;当CPU处于系统态时,可执行包括特权指令在内的一切机器指令。
不同的操作系统定义了不同的态,大体上可以分为核态、管态和用户态。核态有所有权限,用户态受限较多,管态介于之间。‏

‌5. 中断的概念是什么?中断的响应过程是怎样的?

中断的概念是CPU对突发的外部事件的响应机制或过程。
响应的过程:
① 识别中断源;
② 保护断点和现场;
③ 装入中断服务程序的入口地址(CS:IP);
④ 进入中断服务程序;
⑤ 恢复现场和断点;
⑥ 中断返回LRET。

开放性思考题

  1. 操作系统分层结构有何作用?在应用编程中,我们如何使用分层的编程思想提升程序的可移植性和可维护性?

作用:
1)只要层次之间的接口定义完整,开发人员可以专注于某一层,便于分工,降低了业务之间的依赖;
2)问题局部化,有助于系统的移植和局部重新实现;
3)有利于复用,可以复用他人成熟的层次实现。
实际应用:
可以将功能提前分层,然后逐一选择合适的实现方式,尽量减少层次之间的依赖。然后分工完成。比如前后端相互只要定义接口,即可分工完成各自的工作。

2.‌ 操作系统微内核架构有何作用?在应用编程中,我们如何使用“客户-服务器”的编程思想提升程序的功能可扩展性?

1)作用:
① 提高了系统的可扩展性;
② 增强了系统的可靠性;
③ 可移植性强;
④ 提供了对分布式系统的支持;
⑤ 融入了面向对象技术。
2)应用:
① 客户只能通过以公有的方式定义的接口使用服务器,这意味着客户(客户程序员)唯一的责任是了解接口。
② 服务器(服务器程序设计人员)的责任是确保服务器根据该接口可靠并准确的执行。
③ 服务器设计任务只修改设计的实现细节,而不能修改接口。
这样程序员就能够独立的对客户和服务器进行改进,对服务器的修改不会对客户的行为造成意外的影响。

  1. ​网上搜索“Intel CPU的保护模式”,“特权级”两个关键词,了解“CPU的态”与“保护模式”、“特权级”等概念。

CPU的态:CPU的工作状态,是对资源和指令权限的描述。
保护模式:是一种80286系列和之后的x86兼容 CPU 操作模式。 保护模式有一些新的特色,设计用来增强 多工 和系统稳定度,像是 内存保护, 分页 系统,以及硬件支援的 虚拟内存。
​特权级:Privilege Level,是存在于 Descriptor 及 Segment Selector 中一个数值,当这些 Descriptor 或 Segment Selector 要进行某些操作,或者被别的对象访问时,该数值用于控制它们能够进行的操作或者限制它们的可访问性。 Intel Processor 具有 4 个特特权级别(0-3)。
比方说Ring 0~3是CPU的态,具体的就是当前特权级别。保护模式需要切换CPU的态。

第三章 操作系统用户界面

单元作业(1)

  1. 系统BIOS的功能有哪些?

系统启动配置;
基本的设备I/O服务;
系统的加电自检和启动。

  1. 计算机加电后执行的第一条指令存放在哪里,有什么特点?

根据本慕课的 PPT,存放在EPROM中(刚刚开机内存中什么都没有),在FFFF0处。
特点:这条指令是一条跳转指令,跳到系统bios中真正的启动代码处。
在这里插入图片描述
但是根据https://blog.csdn.net/y4786924/article/details/12575063博客,在物理地址空间中,它的地址是0xFFFFFFF0。

  1. 初始引导的目的和主要过程是什么?
目的:把OS核心装入内存,并使之开始工作接管计算机系统
主要过程:
1. 加电,JUMP POST
2. BIOS中的启动程序运行
3. 启动程序
读取0面0道第一扇区内容(1MB)
加载MBR中的引导程序
4. 引导程序
根据相关参数,读取硬盘指定位置的文件到内存
加载硬盘上OS内核,并初始化基本参数
5. OS内核:逐步加载OS剩余部分,直至最后完全控制计算机
  1. 何为操作系统的生成?简述Linux内核的生成过程。
操作系统生成的定义:满足特定硬件环境和用户的需要,组装和构建操作系统的过程。
Linux内核的生成过程:
1. 获取Linux内核的源代码
2. 选择和启动内核配置程序
3. 根据需要配置内核模块和参数
4. 重新编译新的内核
5. 编译和安装模块
6. 启动新内核

单元作业(2)

  1. 何为用户界面?有哪些类别?各有什么特点?
用户界面:OS提供给用户控制计算机的机制,又称用户接口。
类别:
(1)操作界面:有图形用户接口,可以接收键盘命令。
(2)系统调用(system call,系统功能调用,程序界面):一般就是一些命令行。
  1. 何为shell?有哪4类典型的shell?
shell是操作系统与用户交互的界面,表现为通过控制台执行用户命令的方式,shell本身不执行命令,仅仅是组织和管理命令;
4类典型的shell:
Bourne Again Shell (简称bash)
Bourne Shell(简称sh)
C-Shelll(简称csh)
Korn Shell(简称ksh)
  1. 何为输出重定向?举一个Linux或Windows中的重定向的应用命令或例子。
输出重定向:指不使用操作系统默认的标准输出设备显示信息,而是指定某个文件做为标准输出设备来存储文件信息。简单来说,重定向输出就是把要输出的文件信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)。
linux输出重定向例子:
将标准输出重定向到文件
$ ls /etc/ >etcdir.log
  1. 试述运行shell脚本程序的三种方式?
1. 直接运行(用缺省版本的shell运行脚本程序)
2. 使用特定版本的shell执行脚本
3. 在脚本文件首行指定shell

单元作业(3)

  1. 系统调用与普通用户态函数比较,有何异同点?
系统调用:
1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备;
2.依赖于内核,不保证移植性;
3.在用户空间和内核上下文环境间切换,开销较大;
4.是操作系统的一个入口点;
5.系统调用由操作系统核心提供,运行于核心态;
函数调用:
1.使用CALL和RET指令,调用时没有堆栈切换;
2.平台移植性好;
3.属于过程调用,调用开销较小;
4.普通的函数调用由函数库或用户自己提供,运行于用户态;
  1. 试述为Linux增加新的系统调用的过程?
1.编写系统调用实现部分;
2.声明系统调用函数和编号;
3.编译Linux内核;
4.编译和安装模块;
5.启动新的Linux内核;
6.编写应用程序测试新的系统调用。

第四章 操作系统进程管理

单元作业(1)

  1. 进程有哪4个特征?
1.动态性:进程是程序的一次执行过程,动态产生/消亡。
2.并发性:进程同其他进程一起向前推进。
3.异步性:进程按各自的速度向前推进。
4.独立性:进程是系统分配资源和调度CPU单位。
  1. 进程有哪3个基本状态,它们之间如何迁移?
就绪、运行、阻塞。
就绪→运行:进程调度。
运行→就绪:时间片到;被抢占。
运行→阻塞:请求服务;等待信号。
阻塞→就绪:服务完成;信号到来。
  1. 什么是进程控制,有哪4个典型的进程控制行为?
进程控制:在进程生存全期间,对其全部行为的控制。
4个典型的进程控制行为:创建进程、阻塞进程、撤销进程、唤醒进程。
  1. 什么是原语,有何特点?
原语:由若干指令构成的具有特定功能的函数。
特点:具有原子性,其操作不可分割。
  1. 列举WINDOWS通过编程启动exe程序的方法?
设需要启动的exe的路径是A。
system(A);
WinExec(A,SW_SWHOWMAXIMIZED);
ShellExecute(NULL,open,A,NULL,NULL,SW_SHOWNORMAL);
CreateProcess(NULL,A,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi);

单元作业(2)

  1. 试述fork()函数的作用和特点?
作用:用户创建一个新进程。
特点:新进程是当前作用的子进程。子进程是父进程的复制。父进程和子进程并发执行。
  1. 试述线程的概念(Thread)或特点?
概念:是进程中的一个执行路径;
特点:
1.线程是可由CPU直接运行的实体;
2.一个进程可以创建多个线程;
3.多个线程共享CPU可以实现并发运行。
4.是任务调度的单位,但不是系统资源的分配单位。
5.它完全继承父进程占用的资源,当它活动时,具有自己的运行现场。
  1. 试述线程有哪些典型应用场合?
1.多个功能需要并发的地方;
2.需要改善窗口交互性的地方;
3.需要改善程序结构的地方;
4.多核CPU上的应用,充分发挥多核性能。
  1. 何为临界资源,何为临界区?
临界资源:一次只允许一个进程独占访问(使用)的资源。
临界区:进程中访问临界资源的程序段。
  1. 试述设计临界资源或临界区访问机制的四个原则是什么?
1.空闲让进:当无进程在临界区时,任何有权使用互斥区的进程可进入。
2.忙则等待:当临界区忙时,其他进程必须在临界区外等待。
3.有限等待:任何进入临界区的要求应在有限时间内得到满足。
4.让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权。

单元作业(3)

  1. 临界区设计太大或太小有何缺点?
在保证功能的前提下,临界区尽可能小一点好。
如果临界区过大,可能导致等待程序饿死或者中断调度执行其他事件;
如果临界区过小,可能导致临界资源不在临界区内,程序并发执行产生混乱。
  1. 临界区访问机制为什么要实现让权等待原则?锁机制为什么没有满足该原则?
如果不实现让权等待原则,等待进程会不必要地一直占用CPU,造成“忙等待”现象。
锁机制改良之后是可以满足该原则的。PPT中没有满足该原则,是因为等待进程的lock(S)一直在测试S的值,没有停下来,一直需要占用CPU。
  1. 什么是进程的互斥,什么是进程的同步?各举一个例子说明。
进程的互斥例子:进程1需要把文件删除,进程2需要修改文件,它们对文件的修改是互斥的。
进程的同步例子:进程1需要等待进程2修改文件之后再删除文件,它们需要有一定的同步机制。
  1. P-V操作的作用是什么?P操作和V操作各自的原理是什么?
P-V操作的作用:改变信号灯的状态。
P操作的原理:
1.S值减1;
2.若差大于等于0,则该进程继续;
3.若差小于等于0,则该进程阻塞并加入到该信号灯的等待队列中,并转入进程调度程序。
V操作的原理:
1.S值加1;
2.若和大于0,则该进程继续;
3.若和小于等于0,则从该信号灯的等待队列中唤醒一个进程,然后返回本进程继续执行。
  1. 试述P-V操作解决互斥问题的思路是什么?
思路的实质:允许最多1个进程处于临界区。
思路:
1.进入临界区之前先执行P操作;
2.离开临界区之后再执行V操作;
3.S的初值设置要合理。
  1. 试述P-V操作解决同步问题的思路是什么?
1.暂停当前进程:在关键操作之前执行P操作;
2.继续进程:在关键操作之后执行V操作;
3.定义有意义的信号量S,并设置合适的初值。

单元作业(4)

  1. 试分析“司机vs售票员”同步问题中,哪些操作是关键操作,哪些不是?为什么?
司机起步、停车,售票员人关门、开门是关键操作,行驶、售票不是。
因为前面的需要司机和售票员相互协作,要同步才行,后面的操作不会相互影响。
  1. 试分析“生产者与消费者”问题中,P-V操作是如何阻止生产者生产速度过快的,又是如何阻止消费者消费速度过快的?又是如何及时唤醒生产者去尽快生产的,又是如何及时唤醒消费者去尽快消费的?
通过设置空缓冲区数量的信号量阻止生产者生产过快,如果生产到一定数量,还没被取走,那这个信号量就会为负,接下来的生产过程会被阻塞。
通过设置满缓冲区数量的信号量阻止消费者消费过快,如果消费到一定数量,还没被生产出来,那这个信号量就会为负,接下来的消费过程会被阻塞。
唤醒就是分别用另一个信号量。
  1. 试述Windows的信号量(Semaphore)机制的工作原理(或如何应用该机制)?
工作原理:信号量的值可以通过相应函数增或减。
大于0时为有信号;小于等于0时为无信号。
应用:WaitForSingleObject将信号量减1;
ReleaseSemaphore将信号量增1。
  1. 试述Linux中wait函数和exit函数的作用和它们之间的联系?

注:这个答案纯粹是按书上的理解自己答的,如有问题,希望指正。

① exit(status);
exit函数的作用是把终止进程自 fork 以来所占用的系统资源退还给系统(除了proc留给父进程去释放)。
② pid=wait(stat_addr);
wait函数的作用是在子进程没有退出时先置父进程为睡眠状态,并通过stat_addr接收子进程的exit退出状态码。
③ 联系:wait是父进程调用的,用于接收exit的退出状态码,并返回子进程的pid。
exit是子进程调用的,会向父进程返回退出状态码供wait接收。
  1. 试述Windows管道通信或Linux信号机制的原理(或如何应用该机制)?
1.管道像文件一样,可读可写,有读/写两个句柄。
2.通过写句柄向管道中写入数据,或通过输出重定向向写句柄写入;
3.通过读句柄从管道中读数据,或通过输入重定向从读句柄读出。

第五章 死锁

部分参考自:操作系统课程学习笔记五-死锁

单元作业(1)

  1. 什么是死锁或死锁的定义是什么?

定义:在两个或多个并发进程中,如果每个进程持有某种资源,而又都等待着别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。

  1. 如何理解“参与死锁的进程至少有2个已经占有资源”?

两个或以上进程才会出现死锁,而且出现死锁的进程都至少持有一个资源。因此参与死锁的进程至少有2个已经占有资源。

  1. 如何理解“参与死锁的所有进程都在等待资源”?

每一个参与死锁的进程都有无法申请到的资源,等待着其他进程释放这些资源。因此参与死锁的所有进程都在等待资源。

  1. 死锁的四个必要条件是哪些?

①互斥条件:进程互斥使用资源,资源具有独占性。
②不剥夺条件(非抢占):进程在访问完资源前不能被其他进程强行剥夺。
③占有并等待(部分分配):进程在运行时申请资源,不是一开始申请全部资源。并且在等待资源分配的同时继续占用已有资源。
④环路条件(循环等待):存在一个环,环中每一个进程已获得的资源都被环中下一个进程申请,而自己申请的资源被上一个进程占用。(这里的“下一个”指的是课本《操作系统原理》(第四版)的资源分配图中的,与ppt中的箭头指向含义不同)

  1. 如何证明“按有序资源分配法分配资源并发进程不会死锁”?

该方法的资源申请按线性方式排序,破坏了产生死锁的环路条件。
在任何时刻,总有一个进程占用较高序号的资源,该进程继续申请的资源必然是空闲的,故该进程可以一直向前推进。换言之,系统中总有进程可以运行完毕,这个进程执行结束后会释放它所占有的全部资源,这将唤醒等待资源进程或满足其他申请者,系统不会发生死锁。

单元作业(2)-开放性思考题

  1. 在Linux或Windows的实际应用中,用户常说的“死机”或“宕机”或“程序卡住”或“系统卡住,键鼠没有任何响应”与本章的“死锁”是同一问题吗?

不是。
“死机”或“宕机”或“系统卡住,键鼠没有任何响应”可能由于多种原因引起,比如由于进程死锁、程序运行错误导致进程长期陷入阻塞、操作系统无法满足进程申请的资源等因素引起。
死锁受影响的仅仅是死锁的进程以及所涉及的部分资源,未必会引起“死机”或“宕机”。

  1. ‍在Linux或Windows是如何处理死锁的?

鸵鸟策略,忽略不处理。

  1. 了解“避免死锁”策略,并(baidu搜索)了解“银行家算法”的概念和原理?

避免死锁是在动态分配资源的策略下采用某种算法来预防可能发生的死锁,从而拒绝可能引起死锁的某个资源请求。常见方法有有序资源分配法和银行家算法。
银行家算法:当新进程进入系统时,它必须说明对各类资源类型的实例的最大需求量,仅当申请者可以在一定时间内无条件地归还它所申请的全部资源时,才能把资源分配给它。
之所以称为银行家算法,是因为该算法也可以应用于银行系统。

在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。

第六章 进程调度

单元作业(1)

  1. 进程调度的目标有哪些?

①响应速度尽可能快;
②进程处理的时间尽可能短;
③系统吞吐量尽可能大;
④资源利用率尽可能高;
⑤对所有进程要公平;
⑥避免饥饿;
⑦避免死锁。

  1. 什么是周转时间,什么是带权周转时间?

①周转时间:进程提交给计算机到最终完成所花费的时间。计算方法为t=进程的完成时间-进程的提交时间。
②带权周转时间:进程在系统相对停留时间。计算方法为w=周转时间/进程的运行时间。

  1. 什么是响应比?响应比高者优先调度算法有什么特点?

①响应比:作业的响应时间和运行时间的比值。其中响应时间=等待时间+运行时间,所以响应比也等于(1+等待时间/运行时间)。
②特点:1) 如果作业等待时间相同,则运行时间越短的作业,其响应比越高,因此越容易被调度。因而有利于短作业。
2) 如果作业运行时间相同,则等待时间越长的作业,其响应比越高,因此越容易被调度。因此有利于等候长的作业。
3) 对于运行时间长的作业,其优先级可以随等待时间的增加而提高,当其等待足够久的时候,也有可能获得CPU。

​4. 试述优先数调度的算法概念?何为静态优先数,何为动态优先数?

①算法:根据进程优先数,把CPU分配给最高的进程。
②静态优先数:进程创建时确定,在整个进程运行期间不再改变。
③动态优先数:在进程运行期间可以改变,比如在进程使用CPU、等待超过一定时长,或进行I/O操作时,可以重新确定进程优先数。

‎ 5. 试述循环轮转调度的概念和其优点。

①概念:把所有就绪进程按先进先出的原则排成队列。新来进程加到队列末尾。进程以时间片q为单位轮流使用CPU。刚刚运行一个时间片的进程排到队列末尾,等候下一轮运行。队列逻辑上是环形的。
②优点:1) 公平性:每个就绪进程有平等机会获得CPU。2) 交互性:每个进程等待(N-1)*q的时间就可以重新获得CPU。

第七章

单元作业(1)

  1. 简述实际的三级存储器体系的结构(组成)和基本原理?
组成:CPU、CACHE、内存、辅存。
基本原理:1.当内存太小不够用时,用辅存来支援内存。2.暂时不运行的模块换出到辅存上,必要时再换入内存。
  1. 存储管理有哪四大功能?
地址映射、内存分配、存储保护、虚拟存储。
  1. 什么是地址映射?有哪三种地址映射方式?
定义:将程序地址空间中使用的逻辑地址变换成主存中的物理地址的过程。
方式:1.固定地址映射;2.静态地址映射;3.动态地址映射。
  1. 何为动态地址映射?有什么特点?
定义:在程序执行过程中把逻辑地址转换为物理地址。
特点:1.程序占用的内存空间可动态变化。2.程序不需要占用连续的内存空间。3.便于多个进程共享代码。
  1. 虚拟内存管理的目标是什么?
1.使大的程序能在较小的内存中运行。
2.使多个程序能在较小的内存中运行。
3.使多个程序并发运行时地址不冲突。
4.使内存利用率高,无碎片,共享方便。

单元作业(2)

  1. 什么是分区存储管理?有哪些类型?
定义:把用户区内存划分为若干大小不等的分区,供不同程序使用。
类型:固定分区、动态分区。
  1. 何为内存动态分区?有什么特点?
定义:在程序装入时创建分区,使分区的大小和程序的大小相等。
特点:
1.分区动态建立;
2.分区的个数和大小均可变。
3.存在内存碎片。
  1. 何为放置策略?有哪些放置策略?各种放置策略的特点或有点是什么?
定义:空闲区表如何排序的策略。
种类及其特点:
1) 首次适应算法:
 1.尽可能地先使用低地址空间。
 2.在需要较大分区时在高地址空间有较大的可满足性。
2) 最佳适应算法:
 1.尽可能地先使用较小的空闲区,保留较大的空闲区。
 2.当需要较大分区使有较大的可满足性。
3) 最坏适应算法:
 1.大空闲区分割后剩下的部分还很大,还能装下较大的程序。
 2.仅作一次查找就可以找到所要分区。
  1. 何为内存覆盖(Overlay)?有何缺点?

定义:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可以把用户空间分成一个固定区和若干个覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。
缺点:
1.编程复杂:程序员划分程序模块并确定覆盖关系。
2.程序执行时间长:从外存装入内存耗时。

  1. 何为内存交换(Swapping)?有何优点/缺点?
定义:当内存不够时将进程写入磁盘,当进程要运行时重新写回内存。
优点:1. 增加进程并发数。2. 不考虑程序结构。
缺点:1. 换入换出增大CPU开销。2. 交换单位太大。

单元作业(3)

  1. 何为内存碎片?有哪些解决碎片的方法?

定义:在已分配区之间存在着的一些没有被充分利用的空闲区。
解决办法:1. 内存拼接技术。2. 规定门限值。3. 解除程序占用连续内存才能运行的限制。

  1. 何为程序运行的局部性?

由于大多数程序执行时,在一段时间内仅使用它的程序编码的一部分,即并不需要在全部时间内将程序的全部指令和数据都放在主存中,所以,程序的地址空间部分装入主存时,它还能正确地执行,此即为程序的局部性特征。

  1. 试述页式内存管理方案的概念,进程装入和使用内存的原则?

在分页存储管理方法中,主存被等分成一系列的块,程序的地址空间被等分成一系列的页面,然后将页面存放到主存块中。
进程装入的原则:1. 进程以页为单位装入。2. 只把程序的部分页装入内存便可运行。3. 需要新页时,按需从磁盘中调入内存。
内存使用的原则:1. 内存以页框为单位分配使用。2. 页在内存中占用的页框不必相邻。3. 不再运行的页及时删除,腾出空间。

  1. 何为页表?描述利用页表完成页式地址映射的过程。

页表就是在页式系统中,实现程序指令的逻辑地址向实际的物理地址变换的机制。记录程序虚页与其在主存中块(实页)的对应关系的数据结构。
当程序按页划分装入存储器时,操作系统为该程序建立一个页表。对地址变换而言,页表有两个信息,一为页号,二为页框号。
程序的虚拟地址分离得到页号和页内偏移,用页号查找页表得到页框号。计算物理地址等于页框号乘以页大小+页内偏移。

  1. 何为快表?描述有快表的情况下页式地址映射的过程。

放在cache中的页表。
用页号找页框号,如果在快表中找到了这个页号,就输出页框号,如果没找到,就再访问慢表。其他的映射过程与寻常页表一样。

单元作业(4)

  1. 试述页式存储管理系统的页面共享原理。

在不同的进程的页表中填入相同的页框号,多个进程访问相同的内存空间,从而实现页面共享。

  1. 试述缺页中断的概念和缺页中断响应的过程。

要访问的页不在主存中,就发生缺页中断。
发生缺页中断时,先将页面从磁盘中调入主存某块,然后将这个页框中的中断位改成0,并填入实际块号。

  1. 何为页面淘汰?页面淘汰的主要算法有哪些?

该作业分得的主存块已全部用完,必须淘汰该作业已在主存中的一个页,就出现了页面淘汰。
算法:OPT、LRU、FIFO、LFU。

  1. 影响缺页的因素有哪些?

淘汰算法、页框数、页本身的大小、程序的编制方法。

  1. 试述段页式存储管理的主要概念和地址映射过程。

在段式存储管理中结合分页存储管理技术,在段中划分出若干大小相同的页。逻辑地址包括3个部分:段号S、页号P和页内位移W,地址映射同时采用段表和页表。
首先根据段号S查询段表找到该段对应的页表,其次根据页表P查询页表,找到对应的页框号,最后根据页框号和页内偏移W计算物理地址。

单元作业(5)(待补)(看起来不太需要写)

第八章

单元作业(1)

  1. 什么是设备映射?

设备映射就是将逻辑设备映射到物理设备的功能。
从应用软件的角度看,逻辑设备是一类物理设备的抽象。从设备管理程序的角度来看,物理设备是逻辑设备的实例。

  1. 什么是设备的独立性?

物理设备对用户透明,用户使用统一规范的方式使用设备。用户编程时使用设备逻辑名,由系统实现逻辑设备到物理设备的转换。

  1. 什么是虚拟分配?什么是Spooling技术?

虚拟分配:当进程需要与独占设备交换信息时,就采用虚拟技术将与该独占设备所对应的虚拟设备(部分辅存)分配给它。
spooling:虚拟技术和虚拟分配的实现。外部设备同时联机操作。

  1. Spooling系统的工作原理是什么?

任务执行前:预先将程序和数据输入到输入井中
任务运行时:使用数据时,从输入井中取出
任务运行时:输出数据时,把数据写入输出井
任务运行完:外设空闲时输出全部数据和信息

  1. Linux设备主要有哪三类,各有何特点?

字符设备:以字节为单位逐个进行I/O操作
块设备:块设备的存取是通过buffer、cache来进行,可以进行随机访问,支持可安装文件系统。
网络设备:通过BSD套接口访问(SOCKET)

单元作业(2)

  1. 什么叫设备文件,如何读写,有何作用?

设备文件:把硬件设备作为文件来看待。
读写:用文件接口来完成设备的操作。

  1. 与单元作业(1)的第五题重复。
  2. Linux中如何把驱动程序中自定义的接口与文件操作的标准接口关联起来?

定义一个file_operations变量,用自定义的驱动程序接口函数初始化这个变量,映射成文件系统的接口函数。

  1. Windows中如何把驱动程序中自定义的接口与文件操作的标准接口关联起来?

Windows声明设备的文件操作函数是pDriverObject->MajorFuntion[xxx]=my_xxx。

  1. 给出Windows中应用程序访问设备对象的一种方法?

驱动程序中创建设备对象并命名(用IoCreateDevice),应用程序通过符号链接访问设备对象(用IoCreateSymbolicLink)。

第九章

单元作业(1)

  1. 什么是文件,什么是文件系统?

文件是计算机信息存取的一种重要组织形式。由若干信息项有序构成,能够让文件通过文件名被获取。
文件系统负责管理文件的机构成为文件系统。功能是负责文件的创立、撤销、读写、修改、复制和存取控制等,并管理存放文件的存储设备。
文件系统的目标是让用户以文件名来存取文件。

  1. 什么是文件的逻辑结构?有哪二种典型的逻辑结构?

文件的逻辑结构是站在用户的观点的:为用户提供逻辑结构清晰、使用方便的文件,强调文件信息项的构成方式和用户的存取方式。
典型的逻辑结构:记录式文件和流式文件。记录式文件的信息项是记录,结构化数据。流式文件的信息项是字节,文件长度就是字节的数量。

  1. 什么是文件的物理结构?有哪三种典型的物理结构?

物理结构是指文件在存储设备上(例硬盘)的存储方式,强调合理利用储存空间,并缩短I/O存取时间。
类型:连续文件、索引结构、串联文件。

  1. 什么是索引文件,有什么特点?

索引文件概念:文件存放在不连续的存储块中。建立索引表记录文件逻辑块和物理存储块的对应关系。索引表单独放在存储块中。
索引文件的特点:文件=索引区+数据区。先访问索引,再访问数据。支持顺序存取和随机存取。支持文件动态增长、插入、删除。

  1. 何为空闲文件,何为空闲文件目录?

空闲文件:把连续空闲区看成一个特殊文件,由多个连续空闲块组成。
空闲文件目录:所有空闲文件代表存储设备全部空闲空间。为空闲文件建立的专门目录就是空闲文件目录,每个表项对应一个空闲文件,包括第一个空闲块号,空闲块个数等信息。

  1. 何为文件目录,其作用是什么?何为目录文件?

文件目录:文件名址录,记录文件名和存放地址的目录表。
作用:具有将文件名转换为外存物理位置的功能。文件属性也记录在目录中。
目录文件:文件目录以文件形式存于外存,这个文件叫目录文件。

  • 26
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
对于慕课《西安电子科技大学人工智能导论》,以下是一些可能的答案: 人工智能(AI)是计算机科学的一个重要研究领域,它致力于开发能够模拟和实现人类智能的计算机系统。西安电子科技大学的人工智能导论慕课为学习者提供了关于该领域的基础知识和相关概念。以下是一些课程内容的答案: 1. 人工智能的概念与历史:人工智能的定义是指计算机系统能够模拟类似于人类智能的行为和决策。它起源于上世纪50年代,而现代人工智能则依赖于强大的计算能力和大数据的支持。 2. 机器学习:机器学习是人工智能的一个重要分支,其通过让计算机学习数据集并从中提取模式和规律来实现任务。常见的机器学习方法包括监督学习、无监督学习和强化学习。 3. 深度学习:深度学习是一种机器学习方法,它通过构建多层神经网络来模拟人脑的处理机制。这种方法在图像和语音识别等领域取得了重大突破。 4. 自然语言处理:自然语言处理是指让计算机理解、处理和生成人类语言的技术。它包括语音识别、文本理解和机器翻译等子领域。 5. 人工智能在各个领域的应用:人工智能已经在诸如医疗健康、交通运输和金融等领域找到广泛应用。例如,它可以辅助医生进行疾病诊断,优化交通路线和预测股票市场走势。 通过学习《西安电子科技大学人工智能导论》慕课,学习者可以了解人工智能的基本概念、历史背景和应用领域等方面的知识。这将有助于他们进一步了解人工智能的发展趋势,并为未来的学习和职业发展做好准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shandianchengzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值