随笔分类 -  操作系统

个人学习笔记 课程视频:https://www.bilibili.com/video/BV15E411w7GB
摘要:基本地址变换机构 进程切换相关的内核程序负责恢复进程运行环境,原本进程运行相关环境信息保存在PCB中,内核程序会把PCB中相关信息放到一系列相应寄存器中,其中包括页表寄存器 对页表项大小的进一步探讨 阅读全文
posted @ 2021-08-16 19:40 毋纵年华 阅读(150) 评论(0) 推荐(0)
摘要:把“固定分区分配”改造为“非连续分配” 分页存储管理的基本概念 思考:如何实现地址转换 计算机计算页号和页内偏移量 特性: 逻辑地址结构 假如页面大小为2的12次方个字节(内存单元) 页表 阅读全文
posted @ 2021-08-12 16:42 毋纵年华 阅读(99) 评论(0) 推荐(0)
摘要:首次适应算法、最佳适应算法、最坏适应算法、邻近适应算法 首次适应算法 最佳适应算法 最坏适应算法 邻近适应算法 算法开销大小问题:为了保证空闲分区按照规定次序排列,在最佳适应和最坏适应这两种算法中需要经常对整个空闲分区链进行重新排序,这就导致了算法开销更大的问题,而首次适应和邻近适应不需要对整个空闲 阅读全文
posted @ 2021-08-10 19:39 毋纵年华 阅读(368) 评论(0) 推荐(0)
摘要:非连续分配:指为用户进程分配的内存空间可以是不连续的,可以是离散的。 单一连续分配 外部碎片概念会在动态分区分配的时候补充。 固定分区分配 动态分区分配 (问题1) (问题2) 进程2运行结束,移出内存 (问题3) 空闲分区链中,每个空闲分区起始部分和末尾部分,都会分别设置一个指向前一个空闲分区指针 阅读全文
posted @ 2021-08-10 19:06 毋纵年华 阅读(130) 评论(0) 推荐(0)
摘要:覆盖技术 在逻辑上看采用覆盖技术之后,物理内存大小被拓展了 缺点:操作系统不清楚程序的调度结构 交换技术(中级调度) 调出外存的进程PCB留在内存当中,并且插入到挂起队列 交换区和文件区会在第四章文件管理中详细说明 阅读全文
posted @ 2021-08-08 18:24 毋纵年华 阅读(78) 评论(0) 推荐(0)
摘要:内存空间的分配与回收 内存空间的扩展 地址转换 内存保护 上/下限寄存器 重定位寄存器和限长寄存器 阅读全文
posted @ 2021-08-08 16:47 毋纵年华 阅读(35) 评论(0) 推荐(0)
摘要:什么是内存? (一个内存地址对应一个存储单元) 常用的数量单位 进程的运行原理 — 指令 逻辑地址 & 物理地址 从写程序到程序运行 情况1:当逻辑地址和绝对地址相等 情况2:当逻辑地址和绝对地址不相等 绝对装入 静态重定位 动态重定位 学习完分页和分段存储之后来理解 动态重定位的 特性 进程运行的 阅读全文
posted @ 2021-08-08 16:10 毋纵年华 阅读(134) 评论(1) 推荐(0)
摘要:死锁的检测 死锁的解除 阅读全文
posted @ 2021-08-08 14:00 毋纵年华 阅读(80) 评论(0) 推荐(0)
摘要:什么是安全序列 安全序列、不安全状态、死锁的联系 可以在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源分配请求。这也是“银行家算法”的核心思想。 银行家算法 代码实现银行家算法: 阅读全文
posted @ 2021-08-06 17:32 毋纵年华 阅读(80) 评论(0) 推荐(0)
摘要:破坏互斥条件 采用SPOOLing技术之后,进程1和进程2使用打印机的请求被输出进程接收,则进程1和进程2则可以开始往下执行;之后输出进程会根据各个进程请求顺序,依次使用打印机,打印输出 破坏不剥夺条件 破坏请求和保持条件 源源不断有A类进程和B类进程到达,导致了C类进程的饥饿 破坏循环等待条件 假 阅读全文
posted @ 2021-08-05 19:27 毋纵年华 阅读(184) 评论(0) 推荐(0)
摘要:注意: (1)死锁是在等待资源的分配,所以发生死锁的进程一定处于阻塞态 (2)发生饥饿的进程既可能是阻塞态 (如长期得不到需要的I/o设备),也可能是就绪态 (长期得不到处理机) (3)死循环的进程可能是 运行态的 死锁的必要条件 什么时候会产生死锁? (我们可以把同步信号量和互斥信号量看成是一种系 阅读全文
posted @ 2021-08-05 18:45 毋纵年华 阅读(195) 评论(0) 推荐(0)
摘要:如果实现互斥的P操作在实现同步的P操作之前,可能会发生死锁 (1)管程也是用来实现进程的互斥和同步的 (2)共享数据结构:生产者和消费者问题中,生产者和消费者都需要访问的缓冲区,可以用一种数据结构来表示此缓冲区,来对缓冲区进行管理 互斥问题 同步问题:两个消费者进程先执行,生产者进程后执行时;先开始 阅读全文
posted @ 2021-08-05 10:46 毋纵年华 阅读(171) 评论(0) 推荐(0)
摘要:如何避免临界资源分配不当造成的死锁现象,是哲学家问题的精髓 几种可行方案(详解方案三): 情况一: 情况二: 情况三: 阅读全文
posted @ 2021-08-04 19:48 毋纵年华 阅读(66) 评论(0) 推荐(0)
摘要:用P、V操作来实现 要求 如果所有读者进程在访问共享文件之前都执行P(rw)操作,那么会导致各个读进程之间也无法同时访问文件。 读者写者问题的核心思想――怎么处理该问题呢? 阅读全文
posted @ 2021-08-04 19:21 毋纵年华 阅读(61) 评论(0) 推荐(0)
摘要:注意:刚开始finish信号量为0;所以供应者(生产者)放完材料后,在P(finish)处阻塞;一直到吸烟者(消费者)拿走材料,并且执行V(finish)处时;供应者(生产者)进程从阻塞态变为就绪态 阅读全文
posted @ 2021-08-03 11:13 毋纵年华 阅读(108) 评论(0) 推荐(0)
摘要:这里的“多”,应该理解为多类,不同类别的生产者和不同类别的消费者,生产者生产的和消费者消费的是不一样的产品 多线程的同步、互斥关系分析 问题:可不可以不用互斥信号量 当缓冲区大小大于1的时候,可能会导致数据覆盖的问题 从“事件”的角度来分析同步问题 阅读全文
posted @ 2021-08-03 09:42 毋纵年华 阅读(124) 评论(0) 推荐(0)
摘要:问题描述 问题分析 如何实现 生产者进程在把产品放入缓冲区之前,需要检查是否有空闲缓冲区,执行P(empty)消耗一个空闲缓冲区; 当生产者把产品放入缓冲区之后,对产品数量信号量执行V(full)操作,增加一个产品。 消费者进程需要先检查是产品数量,执行P(full)消耗一个产品(或是非空缓冲区); 阅读全文
posted @ 2021-08-01 17:09 毋纵年华 阅读(303) 评论(0) 推荐(0)
摘要:信号量机制实现进程互斥 注意:对不同的临界资源需要设置不同的互斥信号量 信号量实现进程同步 信号量机制实现前驱关系 注意在进程在阻塞态时,挂载到不同信号量对应的等待队列当中 阅读全文
posted @ 2021-08-01 16:05 毋纵年华 阅读(178) 评论(0) 推荐(0)
摘要:信号量机制 wait原语(P)、signal原语(V) 信号量机制 —— 整型信号量 信号量机制 —— 记录型信号量 等待队列(struct process *L)、 阻塞原语(block) 注意动画分析过程中,value值的变化 阅读全文
posted @ 2021-08-01 12:39 毋纵年华 阅读(67) 评论(0) 推荐(0)
摘要:中断屏蔽方法 TestAndSetLock指令 注意:TSL指令是由硬件实现的,下面只是用C语言描述逻辑过程(在实际硬件执行过程中,lock值被储存在物理寄存器中) Swap指令 阅读全文
posted @ 2021-08-01 11:15 毋纵年华 阅读(169) 评论(0) 推荐(0)