操作系统期末考复盘

简答题4题*5`    20分
计算题2题*5`    10分
综合应用2题*10`  20分
程序填空1题10`   10分

1、简答题(8抽4

1、在计算机系统上配置OS的目标是什么?作用主要表现在哪个方面?

        在计算机系统上配置OS,主要目标是实现:方便性、有效性、可扩充性和开放性。
        OS的作用主要表现在以下3个方面:

                ①OS作为用户与计算机硬件系统之间的接口;

                ②OS作为计算机系统资源的管理者;

                ③OS实现对计算机资源的抽象。

2、试说明推动OS发展的主要动力是什么。

    推动OS发展的主要动力表现在:

        ①计算机系统资源的利用率不断提高:

        ②方便用户;

        ③器件不断更新换代;

        ④计算机体系结构不断发展;

        ⑤新的应用需求不断被提出。 

3、什么是前趋图?请画出下列4条语句的前趋图。

        S1: a=xty; S2: b=z+1; S3: c=a-b; S4: w=c+1;

 (1)前趋图(precedence graph)是一个有向无环图,记为DAG ( directed acyclic graph),用于描述进程间执行的前后关系。

前趋图

4、何谓作业和JCB ( job control block,作业控制块) ? 

 ①、作业包含通常所说的程序和数据,还配有作业说明书。系统根据该说明书对程序的运行进行控制。批处理系统中是以作业为基本单位将其从外存调入内存的

 ②、JCB是作业在系统中存在的标志。为了管理和调度作业,为每个作业设置一个JCB, 用于记录管理和调度作业所需的全部信息。

5、什么是临界资源?什么是临界区?

①、在计算机中有许多资源一次仅允许一个进程使用,我们把一次仅允许 一个进程使用的资源称为临界资源,如打印机和一些共享变量等。

②、进程中访问临界资源的那段代码称为临界区

 6、存储器管理的基本任务,是为多道程序的并发执行提供良好的存储器环境。请问:“良
好的存储器环境”应包含哪几个方面?

 “良好的存储器环境”应包含:

        ①让每道程序“各得其所”在不受干扰的环境中运行还可以使用户从存储空间的分配、保护等烦琐事务中解脱出来;

        ②向用户提供更大的存储空间使更多的作业能同时运行,或使更大的作业能在较小的内存空间中运行;

        ③为用户在信息的访问、保护、共享以及动态链接等方面提供方便;

        ④使存储器有较高的利用率

7、试说明/O系统的基本功能。

I/O系统的基本功能主要包括:

        ①隐藏物理设备的细节;

        ②保证OS与设备无关;
        ③提高处理机和IO设备的利用率;

        ④控制I/O设备;确保对设备的正确共享;

        ⑥处理错误。

8、一个比较完善的文件系统应具备哪些功能?

文件存储空间管理。通过文件存储空间管理,能使文件“各得其所”.并且能尽量提高文件存储空间的利用率。

目录管理。通过目录管理,能实现文件“按名存取”,提高文文件的检索速度,解决文件的命名冲突问题(允许文件重名),并能实现文件共享。

文件读/写管理。通过文件读/写管理,可以实现文件数据的快速读/写。

文件安全性管理。通过采取多级文件保护等措施,可以实现对系统中文件的保护,防止文件被偷窃、修改和破坏。

用户接口管理。文件系统向用户提供一个统一的、方便使用的接口,用户通过该接口可以方便地获得如文件存取、创建、删除、修改等文件管理服务。

2、计算题 ( 4 抽 2 )

1、某请求调页系统,页表保存在寄存器中。若个被替换的页未被修改过,则处理 一个缺页中断需要8ms ;若被替换的页己被修改过,则处理一个缺页中断需要20ms。内存存取时间为1us,访问页表的时间可忽略不计。假定70%被替换的页被修改过,为保证有效存取时间不超过2μs,可接受的最大缺页率是多少?

2、某分页式虚拟存储系统,用于页面交换的磁盘的平均访问与传输时间 是20ms,页表保存在内存中,访问时间为1μs,即每引用一次指令或数据就需要访问内存 2次。为改善性能,可以增设一个联想寄存器,若页表项在联想寄存器中,则只要访问1 次内存。假设80%的访问对应的页表项在联想寄存器中,剩下的20%中有10%的访问(即总数的2% )会产生缺页。请计算有效访问时间。 

3、对于容量为200GB的硬盘,若采用FAT文件系统且盘块大小设定为 4KB,则请问其FAT表项长度应当选用16位还是32位(采用二进制表示)? 其FAT共须占用多少字节的空间?

4、某个容量为1.44MB的软盘,共有80个柱面,每个柱面上有18个盘块,盘块大
小为1KB,盘块和柱面均从0开始编号。文件A依次占据了20、500、750、900这4个
盘块,其FCB位于51号盘块上,磁盘最后- -次访问的是 50号盘块。若采用隐式链接分配
方式,则请计算顺序存取该文件的全部内容需要的磁盘寻道距离。

3、综合应用 

页面置换算法:

1、最页面置换算法

2、先进先出页面置换算法

3、最近最久未使用页面置换算法

4、最少使用页面置换算法

5、Clock页面置换算法

6、改进型Clock页面置换算法

 银行家算法

 安全序列有时候是不唯一的

4、程序填空 (2 抽一 )

1、生产者 -- 消费者

#include <stdio.h>
#include <pthread.h>
#define MAX 18 /* 要生产的最大数量 */pthread_mutex_t the_mutex;  // 互斥锁,提供对共享资源的互斥访问
pthread_cond_t condc, condp;  // 条件变量,用于线程间的信号传递
int buffer = 0;  // 缓冲区,生产者和消费者之间共享的数据void *producer(void *ptr) /* 生产数据 */
{ int i;for (i = 1; i <= MAX; i++) {pthread_mutex_lock(&the_mutex);  // 获取对缓冲区的独占访问权while (buffer != 0) pthread_cond_wait(&condp, &the_mutex);  // 缓冲区非空,等待buffer = i; /* 将项目放入缓冲区 */printf("产品 %d 已生产。\n", buffer);sleep(1);  // 模拟一些处理时间pthread_cond_signal(&condc);  // 唤醒消费者pthread_mutex_unlock(&the_mutex);  // 释放对缓冲区的访问权}pthread_exit(0);
}void *consumer(void *ptr) /* 消费数据 */
{ int i;for (i = 1; i <= MAX; i++) {pthread_mutex_lock(&the_mutex);  // 获取对缓冲区的独占访问权while (buffer == 0) pthread_cond_wait(&condc, &the_mutex);  // 缓冲区为空,等待printf("产品 %d 已消费。\n", buffer);buffer = 0; /* 从缓冲区取出项目 */pthread_cond_signal(&condp);  // 唤醒生产者pthread_mutex_unlock(&the_mutex);  // 释放对缓冲区的访问权}pthread_exit(0);
}int main(int argc, char **argv)
{pthread_t pro, con;pthread_mutex_init(&the_mutex, 0);  // 初始化互斥锁pthread_cond_init(&condc, 0);  // 初始化消费者条件变量pthread_cond_init(&condp, 0);  // 初始化生产者条件变量pthread_create(&con, 0, consumer, 0);  // 创建消费者线程pthread_create(&pro, 0, producer, 0);  // 创建生产者线程pthread_join(pro, 0);  // 等待生产者线程结束pthread_join(con, 0);  // 等待消费者线程结束pthread_cond_destroy(&condc);  // 销毁消费者条件变量pthread_cond_destroy(&condp);  // 销毁生产者条件变量pthread_mutex_destroy(&the_mutex);  // 销毁互斥锁
}

2、读者 -- 写者

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>#define M 6 // 读者数量
#define N 2 // 写者数量int rc = 0; // 当前读者数量
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; // 用于互斥地修改rc变量 
pthread_mutex_t db = PTHREAD_MUTEX_INITIALIZER; // 用于读、写以及写、写之间的互斥 void *read(void *arg) {pthread_mutex_lock(&mutex); // 锁定互斥锁mutex,用于修改rc变量rc = rc + 1;if (rc == 1) pthread_mutex_lock(&db); // 如果是第一个读者,锁定互斥锁dbpthread_mutex_unlock(&mutex); // 解锁互斥锁mutex,允许其他读者进入printf("reader %d is reading\n", arg); // 打印读者正在读sleep(1); // 模拟读操作,休眠1秒printf("reader %d is leaving\n", arg); // 打印读者正在离开pthread_mutex_lock(&mutex); // 锁定互斥锁mutex,用于修改rc变量rc = rc - 1;if (rc == 0) pthread_mutex_unlock(&db); // 如果是最后一个读者,解锁互斥锁dbpthread_mutex_unlock(&mutex); // 解锁互斥锁mutex
}void *write(void *arg) {pthread_mutex_lock(&db); // 锁定互斥锁db,用于写操作printf("writer %d is writing\n", arg); // 打印写者正在写sleep(1); // 模拟写操作,休眠1秒printf("writer %d is leaving\n", arg); // 打印写者正在离开pthread_mutex_unlock(&db); // 解锁互斥锁db
}int main() {pthread_t readers[M], writers[N]; // 定义M个读者线程和N个写者线程int i;for (i = 0; i < M; ++i)pthread_create(&readers[i], NULL, read, (void *) i); // 创建M个读者线程for (i = 0; i < N; ++i)pthread_create(&writers[i], NULL, write, (void *) i); // 创建N个写者线程sleep(6); // 主线程休眠6秒,等待读者和写者线程执行return 0;
}

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

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

相关文章

如何把123转换成字符串的123

在许多编程语言中&#xff0c;将数字123转换为字符串的"123"是非常直接的。以下是几种常见编程语言的示例&#xff1a; Python num 123 str_num str(num) print(str_num) # 输出: 123 JavaScript let num 123; let str_num num.toString(); console…

three.js 学习笔记(学习中1.10更新) |

文章目录 three.js 学习笔记基础概念透视相机 第一个three.js应用threejs画布尺寸和布局canvas画布宽高度动态变化 坐标辅助器 THREE.AxesHelper实现动画效果requestAnimationFrame时间相关属性和方法 THREE.Clock类 相机控件 轨道控制器OrbitControls 灯光点光源点光源辅助观察…

m1 + swoole(hyperf) + yasd + phpstorm 安装和debug

参考文档 Mac M1安装报错 checking for boost... configure: error: lib boost not found. Try: install boost library Issue #89 swoole/yasd GitHub 1.安装boost库 brew install boostbrew link boost 2.下载yasd git clone https://github.com/swoole/yasd.git 3.编…

轻量化神奇!看3D模型格式转换工具HOOPS Exchange如何轻松实现减面操作?

现在很多CAD模型都比较复杂&#xff0c;有时候为了一些特殊用途&#xff08;轻量化显示、布尔运算、CAE网格剖分等&#xff09;&#xff0c;需要到对原始模型进行减面操作。在HOOPS Exchange中&#xff0c;就提供了对模型进行减面操作支持&#xff0c;以下内容就是HOOPS Exchan…

亚信安慧AntDB数据库容灾复制原理

AntDB数据库作为通信运营商领域的杰出的数据服务提供者&#xff0c;一直以来都十分重视数据安全问题&#xff0c;不断通过技术进步、方案创新等方式提升数据容灾能力。在信息化的时代&#xff0c;数据已经成为了重要的资源&#xff0c;对于企业来说&#xff0c;如何存储和管理这…

docker微服务案例

文章目录 建立简单的springboot项目(boot3)boot2建立通过dockerfile发布微服务部署到docker容器编写Dockerfile打包成镜像运行镜像微服务 建立简单的springboot项目(boot3) 1.建立module 2. 改pom <?xml version"1.0" encoding"UTF-8"?> <…

python爬虫实战(7)--获取it某家热榜

1. 需要的类库 import requests from bs4 import BeautifulSoup import pandas as pd2. 请求榜单 def fetch_ranking_data():url "https://m.xxx.com/rankm/" #某家response requests.get(url)if response.status_code 200:return response.contentelse:print(f…

计算机网络期末复习(二)

物理层 解决&#xff1a;如何在连接各种计算机的传输媒体上传输比特流&#xff0c;而不是具体的传输媒体。 传输媒体&#xff1a;比如双绞线、同轴电缆、光纤等等。 主要任务&#xff1a;确定于传输媒体接口有关的一些特性。 传输媒体 导向形 非导向形 调制解调器 数字信号 和…

CSGO服务器搭建细节

在搭建CSGO服务器之前&#xff0c;我们首先需要确保电脑上已经安装好了所需的软件环境。这里我们需要安装SteamCMD和HLDSUpdateTool工具&#xff0c;并在安装之后进行相关的配置&#xff0c;才能顺利地跑起服务器。同时&#xff0c;在准备环境的同时&#xff0c;我们还要考虑服…

贝锐蒲公英云智慧组网解读:实现工业设备远程调试、异地PLC互联

这个时候&#xff0c;使用异地组网是非常有效的解决方案。在12月28日贝锐官方的直播中&#xff0c;请到了贝锐蒲公英的技术研发经理&#xff0c;为大家分享了贝锐蒲公英云智慧组网解决方案&#xff0c;以及蒲公英二层组网相关的技术和应用。 搜索“贝锐”官方视频号&#xff0c…

XCTF:再见李华[WriteUP]

从题目中下载到图片 md5&#xff1a;1a4fb3fb5ee12307 十六位的哈希数&#xff0c;但没任何意义(只有迷惑作用) 扔进binwalk中分析有没有隐藏的文件 发现有个ZIP文件 使用foremost尝试提取 foremost mail2LiHua.jpg 提取成功 但是这个zip文件开了密码 里面的key应该就是…

【图解面试】JS系列 - 如何回答数据类型相关问题(上)

1. JS中的数据类型有哪些&#xff0c;他们的区别是什么&#xff1f; 知识点大纲 语言组织&#xff08;示例&#xff09; 要点&#xff1a;数量 → 种类 → 区别 JS中的数据类型主要有 8 种&#xff0c;分为两大类 基础数据类型 和 引用数据类型 基础数据类型中主要有 Numbe…

11Spring IoC注解式开发(下)(负责注入的注解/)

1负责注入的注解 负责注入的注解&#xff0c;常见的包括四个&#xff1a; ValueAutowiredQualifierResource 1.1 Value 当属性的类型是简单类型时&#xff0c;可以使用Value注解进行注入。Value注解可以出现在属性上、setter方法上、以及构造方法的形参上, 方便起见,一般直…

【电商API接口】jd.item_search按关键字搜索京东商品返回值和参数说明

item_search-按关键字搜索商品 [查看演示] API测试工具 注册开通 jd.item_search 公共参数 请求地址: 申请调用KEY测试 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08…

Vue学习笔记六--Vue3学习

1、Vue3的优势 2、创建Vue3工程 前提&#xff1a;node -v 查看node版本&#xff0c;需要在16.0及以上 创建命令 npm init vuelatest,先安装create-vue然后创建项目 然后执行npm run dev 提示 sh: vite: command not found,需要执行npm i重新安装依赖&#xff0c;之后再执行np…

【目标跟踪】多相机多目标跟踪

文章目录 前言一、计算思路二、代码三、结果 前言 单相机目标跟踪之前博客已经有过基本介绍&#xff0c;本篇博客主要介绍一种多相机目标跟踪的计算方法已知各相机内外参&#xff0c;如何计算共视区域像素投影&#xff1f;废话不多说&#xff0c;见下图。 同一时刻相机A与相机…

大争之世,GPT Store 正式上线将带来哪些影响?

生产者视角&#xff0c;ChatGPT周边商业边界全面打开&#xff0c;应用生产零门槛、抄袭无限&#xff0c;看谁能持续创新取胜。 用户视角&#xff0c;有益应用可选性广&#xff0c;可根据自身需求选择适用场景&#xff0c;臻于个性化体验。 请访问http://chat.openai.com/gpts进…

路由器实验总结(静态路由配置)

1、静态路由的配置 R2(config)#int s0/0/0 R2(config)#ip add 192.168.3.2 255.255.255.0 R2(config)# no shut R1(config)#int s0/0/0 R1(config)#ip add 192.168.3.1 255.255.255.0 R1(config)# no shut串口的配置是这样的&#xff0c;静态路由如下&#xff1a; R2(config)#…

el-dialog 内部添加固定定位 ,背景颜色超出问题 (粘性定位)

使用固定定位会出现背景颜色超出的问题 position: fixed;left: 0;bottom: 0;width: 80%;height: 50px;line-height: 50px;text-align: center;background-color: #fff;overflow: hidden; 解决办法 粘性定位 position: sticky;bottom: 0;width: 100%;height: 50px;line-height…

ABeam×StartUp丨ABeam旗下德硕管理咨询(深圳)新创部门拜访「光子晶体科技」

光子晶体科技 ABeamStartUp 光子透明芯片 显示技术 光学材料 近日&#xff0c;ABeam 旗下德硕管理咨询&#xff08;深圳&#xff09;有限公司&#xff08;以下简称“ABeam-SZ”&#xff09;新创部门一行拜访了深圳光子晶体科技有限公司&#xff08;以下简称“光子晶体科技”…