操作系统期末考复盘

简答题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.hqwc.cn/news/344157.html

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

相关文章

Nessus离线激活

Nessus10.4.6版本的离线激活 1.获取你的机器的challenge code: ./nessuscli fetch --challenge 2.获取一个Essentials版本的activate code: Tenable Nessus Essentials Vulnerability Scanner | Tenable 需要你的活动邮件接收activate code 3.获取授权文件和插件 Plugin Reg…

Centos安装Datax

Centos7安装DataX 一、DataX简介二、DataX的数据源支持三、安装DataX1、下载DataX2、解压3、检验是否安装成功4、使用 四、实践案例1、环境信息2、编写同步的配置文件(user_info.json)3、执行同步4、验证同步结果 一、DataX简介 DataX 是阿里云 DataWorks数据集成 的开源版本&a…

使用WAF防御之网络上的隐蔽威胁(XSS攻击)

跨站脚本攻击&#xff08;XSS&#xff09;是一种常见且危险的威胁。它允许攻击者在用户浏览器上执行恶意脚本&#xff0c;窃取信息、篡改网页内容&#xff0c;甚至劫持用户会话。 什么是XSS攻击 定义&#xff1a;XSS攻击是一种代码注入技术&#xff0c;攻击者通过在目标网站上…

大模型推理优化实践:KV cache 复用与投机采样

作者&#xff1a;米基 一、背景 RTP-LLM 是阿里巴巴大模型预测团队开发的大模型推理加速引擎&#xff0c;作为一个高性能的大模型推理解决方案&#xff0c;它已被广泛应用于阿里内部。该引擎与当前广泛使用的多种主流模型兼容&#xff0c;并通过采用高性能的 CUDA 算子来实现了…

构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的Nginx1.24.0的RPM包

本文适用&#xff1a;rhel8系列&#xff0c;或同类系统(CentOS8,AlmaLinux8,RockyLinux8等) 文档形成时期&#xff1a;2022-2023年 因系统版本不同&#xff0c;构建部署应略有差异&#xff0c;但本文未做细分&#xff0c;对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人…

几种常见的python开发工具对比

​ Python是一种功能强大且易于学习的编程语言&#xff0c;被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛&#xff0c;越来越多的Python开发工具也涌现出来。但是&#xff0c;对于新手来说&#xff0c;选择一款合适的Python开发工具可…

服务器部署项目,访问验证码出现Handler dispatch failed....InvocationTargeException

场景&#xff1a; 部署ruoyi-vue的jar。访问验证码接口时&#xff0c;出现异常。本地测试没有问题&#xff0c;起初使用的jdk8&#xff0c;怀疑jdk版本问题&#xff0c;但是本地使用11.0.15版本也没问题&#xff0c;后面也就没管&#xff0c;初步排除jdk版本的问题。之前项目也…

【pwn】cmcc_simplerop --rop链的构造

程序保护情况检查 32位程序&#xff0c;堆栈不可执行 主函数&#xff1a; 左边又是一堆函数&#xff0c;file看一下 发现是静态链接&#xff0c;那ret2libc不用考虑了&#xff0c;接着看一下有没有int 80 那可以考虑利用rop链调用execve函数&#xff0c;用系统调用的函数参数是…

电脑文件夹该怎么加密?文件夹加密方法大盘点

文件夹加密可以有效的避免数据泄露&#xff0c;提高文件夹的安全性。那么&#xff0c;电脑文件夹该怎么加密呢&#xff1f;下面我们就一起来盘点一下文件夹加密的方法。 文件夹加密超级大师 从名字上我们就可以知道&#xff0c;文件夹加密超级大师是一款专业的文件夹加密软件&…

Android音视频: 引入FFmpeg

本文你可以了解到 本文将介绍如何将上一篇文章编译出来的 FFmpeg so 库&#xff0c;引入到 Android 工程中&#xff0c;并验证 so 是否可以正常使用。 一、开启 Android 原生 C/C 支持 在过去&#xff0c;通常使用 makefile 的方式在项目中引入 C/C 代码支持&#xff0c;随…

深度学习进行数据处理(划分测试集和训练集)

自己进行在深度学习时对数据的处理,希望可以帮助大家 文章目录 前言 一、观察数据格式 二、划分训练集和测试集 总结 前言 在进行图像分类时我们经常得到的数据集各种各样,接下来我教大家如划分测试集和训练集. 一、观察数据格式 我们一般获得的数据在一个文件夹里,文件夹…

【椒盐玉兔】GPTs Store 商店的TOP100 自定义GPT使用报告

详细的图文报告有100张图&#xff0c;因为太长就放网盘链接 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;ub2n 解压密码&#xff1a;heehel 更多作品&#xff1a;长期更新国内外&#xff0c;中英文AI人工智能作品 整理获取 通过算法&#xff0c;筛选出了目前访…