王道408---OS---试卷问题

一、系统的页表项一般包括

⻚号(隐含,实际不会占⽤存储空间)
⻚框号(⽤于描述逻辑⻚⾯在物理内存中的位置)
脏位(⽤于描述该⻚⾯的数据是否被修改过)
有效位
外存地址(⽤于描述该⻚⾯在外存中的存放地址)
置换算法相关的信息(不同的置换算法,需要记录的信息不同。如FIFO算法需要记录⻚⾯调⼊内存的时间,LRU算法需要记录⻚⾯最近⼀次被访问的时间

二、当前目录的概念

课本P255
linux用户设置某目录(如:"tlsn//A//B")为"当前目录",则B目录会被读取并常驻内存

三、页面置换时的脏位

页面置换时也要注意到脏位需写回磁盘,与cache相似
若页面在使用过程中没有被修改,就不用写回磁盘 ,反之,需要写回磁盘

四、读者写者问题

分三种情况

读优先

semaphore write=1; //互斥信号量,⽤于给写者“上锁” semaphore rmutex=1; //互斥信号量,实现对readCount的互斥访问 int readCount=0;//读者的数量 void reader(){ while(1){ p(rmutex) if(readCount == 0){ p(write) } readCount++; v(rmutex) read ... p(rmutex) readCount-- if(readCount == 0){ v(write) } v(rmutex) } } void writer(){ while(1){ p(write) writing ... v(write) } }

读写公平

semaphore write=1; //互斥信号量,⽤于给写者“上锁” semaphore rmutex=1; //互斥信号量,实现对readCount的互斥访问 semaphore piror=1; // 全局优先锁 int readCount=0;//读者的数量 void reader(){ while(1){ p(piror) //读进程拿到全局优先锁 p(rmutex) if(readCount == 0){ p(write) } readCount++; v(rmutex) v(piror) // 释放 read ... p(rmutex) readCount-- if(readCount == 0){ v(write) } v(rmutex) } } void writer(){ while(1){ p(piror) p(write) writing ... v(write) v(piror) } }

写优先

semaphore limit_reads=1; //互斥信号量,⽤于给读者“上锁” semaphore writes=1; //互斥信号量,⽤于给写者“上锁” semaphore rmutex=1; //互斥信号量,实现对readCount的互斥访问 semaphore wmutex=1; //互斥信号量,实现对writeCount的互斥访问 int readCount=0, writeCount=0; //读者、写者的数量 void reader(){ while(1){ p(limit_reads) p(rmutex) if(readCount == 0){ p(writes) } readCount++ v(rmutex) v(limit_reads) reading ... p(rmutex) readCount-- if(readCount == 0){ v(writes) } v(rmutex) } } void writer(){ while(1){ p(wmutex) if(writeCount == 0){ p(limit_reads) } writerCount++ v(wmutex) p(writes) writing ... v(writes) p(wmutex) writeCount-- if(writeCount == 0){ v(limit_reads) } v(wmutex) } } // 读进程拿到写进程的令牌后,会限制写进程等待所有读进程运行完后再运行 // 写进程拿到读进程令牌后,会限制读进程的进入,并且一直维持到写进程队列的进程都运行完毕后才释放令牌

__EOF__

本文作者_TLSN
本文链接https://www.cnblogs.com/lordtianqiyi/p/17700156.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   TLSN  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示