没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
35页
涵盖了操作系统原理的多个重要主题,包括常见的题型和知识点。下面是对这些内容的总结: 常见题型:涉及信号量、生产者消费者问题、页面置换算法、银行家算法、地址转换、磁盘调度算法和进程作业调度算法等。 信号量描述前趋图:用于描述并发程序中进程间的同步和互斥关系。 生产者消费者问题:多线程环境下的典型问题,涉及生产者和消费者之间的同步。 页面置换算法:包括FIFO、LRU和OPT算法,用于处理内存管理中的页面置换问题。 银行家算法:一种避免死锁的资源分配策略。 地址转换:涉及十进制和十六进制地址的转换。 磁盘调度算法:包括FCFS、SSTF、SCAN和CSCAN等算法,用于优化磁盘I/O操作。 进程作业调度算法:包括FCFS、SJF和HRRN等算法,用于决定进程执行的顺序。 知识点 操作系统概述:包括OS的特征和不同时期的发展历程。 乱七八糟的概念:可能指操作系统中的一些基础但容易混淆的概念。 指令:包括原语、系统调用、中断和异常等。 CPU处理机状态:涉及CPU的不同工作状态。 体系结构:操作系统的体系结构设计。 题目 进程管理:包括进程的基本概念、定义、组成、状态,以及程序
资源推荐
资源详情
资源评论
操作系统原理
整理By Wolger "做好知识产权保护,有问题别来找我
1.1.1 操作系统的定义
哔哩哔哩
bilibili
【拯救者】Ep
课程简介
哔哩哔哩_bilibili
两小时讲完操作系统总复习
哔哩哔哩
bilibili
以下内容大部分参考了以上视频,如果有时间一定要看!
注意,这是期末速成,做不到事无巨细,如果是考研的同学本篇仅作为参考
操作系统原理
常见题型
一、信号量描述前趋图
二、生产者消费者
基础题型
多生产者消费者
示例真题
三、页面置换算法
先进先出算法(FIFO)
最近最久未使用算法(LRU)
最佳置换算法(OPT)
四、银行家算法
五、地址转换
题型一:十进制地址转换
题型一:十六进制地址转换
六、磁盘调度算法
先来先服务(FCFS)
最短寻道时间优先(SSTF)
SCAN扫描电梯算法(SCAN)
循环扫描(CSCAN)
七、进程作业调度算法
先来先服务(FCFS)
短作业优先(SJF)
高响应比优先算法(HRRN)
知识点
操作系统概述
OS的特征
不同时期发展
乱七八糟的概念
指令:
原语
提供的接口(系统调用)
中断和异常
CPU处理机状态
体系结构
题目
进程管理
进程的基本概念
定义:
组成:
状态:
程序和进程的区别:
处理机调度
层次
方式
调度准则
调度算法
进程同步
制约关系
临界资源
临界区
临界区互斥
原则:
基本方法(实现机制):
线程的内容
管程的内容
死锁:
四个必要条件
解决方法
例题:
内存管理
文件管理
IO外设管理
常见题型
一、信号量描述前趋图
首先要搞清楚啥是PV,PV是用来实现进程互斥的操作,而wait和signal是其具体的原语
P(wait):申请资源操作
V(signal):释放资源操作
S:信号量,用来记录资源数量
例如S=3代表3个可用的空闲资源
执行P:wait(s)操作后,将申请一个可用资源,此时S-1
执行V:signal(s)操作后,将释放一个可用资源,此时S+1
那么此类题型,一般给你一个前趋图,让你写出信号量的执行函数
此图大致可以理解为,执行完S1后,释放a、b资源,S2需要a资源,s3需要b资源,依次顺序执行
解题过程:
1. 首先,声明一堆变量,这些变量代表的是信号量
2. 定义进程函数,执行相关操作如s1(),执行完释放资源v(a)、v(b),每个节点如果有前驱箭头,则需
先申请资源
3. 所有进程函数定义好后,编写main函数
4. 对所有信号量进行初始化赋值为0,在cobegin与coend中并发执行所有进程函数
详情请见下图,看懂这代码,这类题型就差不多了
二、生产者消费者
基础题型
与上题类似,其实还是进程互斥的问题。
一般会有三个变量代表信号量所有的资源
1. 互斥信号量mutex:一般初始化为1,用来表示互斥的标志(互斥锁),同一时间只有一个线程可
以有锁。当mutex为1时,大家都可以访问资源,当某个线程访问时,mutex会变为0,其他线程不
允许访问
2. 空闲缓冲区empty:也就是生产者能够用的空间,只有当有空闲缓冲区够用,生产者才会生产
3. 非空缓冲区full:生产者生产出的资源就会放在这个空间,等着消费者来拿,只有当这个空间有东
西,消费者才会消费
缓冲区是公用的,是公用的,是公用的,记住这个!所以empty和full他们是相对的
如果缓存区的大小是3,那么一开始空闲缓冲区就是3,非空闲的就是0
当1个缓冲区被使用了,那么空闲缓冲区就变为2,非空闲就是1
解题过程
1. 定义三个变量,mutex=1,empty=n(看题目给你多少空间),full=0
2. 编写生产者函数
首先需要申请一个缓冲区空间用来生产p(empty),同时也要给缓冲区上锁p(mutex),让别人
(消费者)无法访问
执行相关操作,生产某个东西,放入某个东西之类的
生产完成,释放锁v(mutex),此时该缓冲区就有东西了所以非空缓冲区+1 v(full)
3. 编写消费者函数
我要拿东西,肯定要申请下非空缓冲区p(full),同时给缓冲区上锁p(mutex),让别人(生产
者)无法访问
执行相关操作,拿东西,取东西,吃东西之类的
消费完成,释放锁v(mutex),此时该缓冲区就空了所以空闲缓冲区+1 v(empty)
剩余34页未读,继续阅读
资源评论
我嘞个乖乖鹅
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功