《计算机科学导论》第七章课后作业解答(个人版)

复习题

  1. 应用程序和操作系统的不同点是什么?
    答:应用程序是用户通过编写或安装的软件来执行特定任务的程序,它们旨在满足用户的需求。操作系统是计算机系统中的核心软件,管理计算机的硬件和软件资源,并为应用程序提供必要的服务和资源。

  2. 操作系统的组成是什么?
    答:操作系统由若干不同的组件组成,主要包括以下部分:

  • 内核(Kernel):负责管理和控制系统的所有资源,并提供系统调用接口供应用程序访问核心功能。
  • 文件管理系统:用于管理计算机上的文件和目录,提供对文件的读写和操作。
  • 进程管理:负责创建、调度和管理进程(程序的执行实例)。
  • 内存管理:管理计算机的物理内存,包括内存分配、虚拟内存、页式管理等。
  • 设备管理:控制和管理计算机的各种设备,如打印机、硬盘等。
  1. 单道程序和多道程序之间有何区别?
    答:单道程序是指一次只能运行一个程序,执行完一个程序后才能运行另一个程序。多道程序是指在内存中同时存放多个程序,并允许它们并发执行。在多道程序环境下,操作系统通过进程管理来实现多个程序的并发执行。

  2. 分页调度与分区调度有什么差别?
    答:分页调度是指将进程分割成大小相等的页面,而物理内存也被分成相同大小的页框,进程的页在运行时根据需要映射到页框中。分区调度是指将内存分割成不同大小的区块,每个进程被装入不同大小的分区中。

  3. 为什么请求分页调度比常规页面调度更有效率?
    答:请求分页调度可以实现虚拟内存技术,将进程的部分页面存储在物理内存中,而其他部分存储在磁盘上。这样可以节省物理内存的使用,允许更多的进程共享同一物理内存,从而提高内存利用率和系统的整体性能。

  4. 程序和作业之间有何联系?作业和进程之间有何联系?程序和进程之间的联系又如何?
    答:程序是一组指令的集合,是静态的,不直接参与计算机的执行。作业是一个或多个相关的程序和数据集合,提交给操作系统以完成一项任务。作业被装入内存并转化为进程,进程是程序在执行过程中的实例。进程是动态的,具有自己的执行状态和资源使用。

  5. 程序驻留在哪里?作业驻留在哪里?进程驻留在哪里?
    答:程序通常存储在磁盘或其他存储介质上。作业通常驻留在磁盘或批处理队列中,等待被调度执行。进程驻留在内存中,操作系统为进程分配了一定的内存空间来执行程序。

  6. 作业调度器和进程调度器有什么区别?
    答:作业调度器是操作系统中负责选择将要调度执行的作业的组件。它从作业队列中选择一个或多个作业,并将其装入内存中准备执行。进程调度器是操作系统中负责选择将要执行的进程的组件。它从就绪队列中选择一个或多个进程,并分配CPU时间片给它们执行。

  7. 为什么操作系统需要队列?
    答:操作系统需要队列来管理作业和进程,实现合理的调度和资源分配。作业队列用于管理待执行的作业,进程队列用于管理待执行的进程。队列帮助操作系统有序地进行调度和管理,并确保公平和高效地使用计算机资源。

  8. 死锁和饿死有何区别?
    答:死锁是指两个或多个进程互相等待对方所持有的资源,导致都无法继续执行的状态。饿死是指一个或多个进程因为始终得不到所需的资源而无法执行,而其他进程不断占用资源导致它们得不到满足。死锁是相互之间的问题,而饿死是个别进程的问题。

练习题

  1. 一个计算机装有一个单道程序的操作系统。如果内存容量为64MB,操作系统需要4 MB 内存,那么该计算机执行一个程序可用的最大内存为多少?
    该计算机执行一个程序可用的最大内存为64MB-4MB=60MB。

  2. 若操作系统自动分配10MB内存给数据,重做第1题。
    如果操作系统自动分配10MB内存给数据,那么该计算机执行一个程序可用的最大内存为64MB-4MB-10MB=50MB。

  3. 一个单道程序的操作系统执行程序时均访问 CPU 要10微秒,访问 I / O 设备要70微秒, CPU 空闲时间为百分之多少?
    在这种情况下,每次执行程序时,CPU空闲时间占总时间的比例为70微秒/(10微秒+70微秒)=87.5%。

  4. 一个多道程序的操作系统用一个适当的分配计划把60MB内存分为10 MB 、12 MB 、18 MB 、20 MB 。第一个程序运行需要17 MB 内存,使用了第三分区。第二个程序运行需要8MB内存,使用了第一分区。第三个程序运行需要10.5 MB ,使用了第二分区。最后,第四个程序运行需要20MB内存,使用了第四分区。那么总共使用了多少内存?总共浪费了多少内存?内存的浪费率是多少?
    总共使用了17+8+10.5+20=55.5 MB内存。总共浪费了18-17+10-8+12-10.5+20-20=4.5 MB内存。内存的浪费率是4.5/60=7.5%。

  5. 如果所有的程序都需要10MB内存,重做第4题。
    如果所有的程序都需要10MB内存,那么总共使用了40 MB内存。总共浪费了18-10+10-10+12-10+20-10=20 MB内存。内存的浪费率是20/60=33.3%。

  6. 一个多道程序的操作系统使用分页调度。可用内存为60MB,分为15个帧,每一帧大小为4MB。第一个程序需要13 MB ,第二个程序需要12 MB ,第三个程序需要27 MB 。
    a . 第一个程序需要用到多少帧?
    b . 第二个程序需要用到多少帧?
    c . 第三个程序需要用到多少帧?
    d . 有多少个帧没有用到?
    e . 总共浪费的内存是多少?
    f . 内存的浪费率是多少?

a. 第一个程序需要用到4帧。
b. 第二个程序需要用到3帧。
c. 第三个程序需要用到7帧。
d. 有1个帧没有用到。
e. 总共浪费的内存是16-13+12-12+28-27=4 MB。
f. 内存的浪费率是4/60=6.7%。

  1. 一个操作系统使用的虚拟内存,但执行的时候需要所有的程序驻留在物理内存中(没有分页调度或分段调度)。物理内存大小为100 MB ,虚拟内存为1 GB 。有多少10MB大小的程序可以同时运行?它们之中有多少可以随时驻留在内存中?多少则必须要存在磁盘里?
    虚拟内存大小为1 GB(1,024 MB),物理内存大小为100 MB。
    1.可同时运行的程序数量 = 物理内存大小 / 程序需要的内存 = 100 MB / 10 MB = 10个程序。
    2.可以随时驻留在内存中的程序数量 = 物理内存大小 / 程序需要的内存 = 100 MB / 10 MB = 10个程序。
    3.必须存在磁盘里的程序数量 = 虚拟内存大小 / 程序需要的内存 = 1 GB / 10 MB = 102个程序。
    因此,可以同时运行10个10MB大小的程序,其中有10个程序可以随时驻留在内存中,而其他的必须要存在磁盘里。

  2. 进程在下面的情况下处于什么状态?
    a . 进程在使用 CPU
    b . 进程结束打印,等待CPU再次调用
    c . 进程因为时间片用尽而被终止
    d . 进程从键盘读取数据
    e . 进程打印数据

a. 进程在使用CPU时处于运行状态。
b. 进程结束打印,等待CPU再次调用时处于就绪状态。
c. 进程因为时间片用尽而被终止时处于就绪状态。
d. 进程从键盘读取数据时处于阻塞状态。
e. 进程打印数据时处于阻塞状态。

  1. 三个进程( A 、 B 和 C )同时运行,进程 A 占用 File1 但需要File2。进程 B 占用File3但需要 File1 。进程 C 占用File2但需要File3。为这几个进程画一个框图。这种情况是不是死锁?
    这种情况是死锁。

  2. 三个进程( A 、 B 和 C )同时运行,进程 A 占有 File1 ,进程 B 占有File2但需要 File1 ,进程 C 占有File3但需要File2。为这几个进程画一个框图。这种情况是不是死锁?如果不是,说明进程怎样最后完成它们的任务。
    这种情况不是死锁。
    在这种情况下,进程A可以释放File1,然后进程B可以获得File1并完成它的任务。接着,进程B可以释放File2,然后进程C可以获得File2并完成它的任务。最后,所有的进程都可以完成它们的任务。

posted @ 2023-07-26 18:40  mu_yu21  阅读(868)  评论(0)    收藏  举报