摘要: 内存管理的概念 ‍ ​​ ‍ 一、 ​​ ‍ 二、内存保护 (一)方法一:设置上下限寄存器 ​​ ‍ (二)方法二:设置重定位寄存器(基址寄存器)和界地址寄存器(限长寄存器) ​​ 阅读全文
posted @ 2024-11-29 09:05 Wind_730 阅读(53) 评论(0) 推荐(0)
摘要: 内存的基础知识 ‍ ​​ ‍ 一、存储单元 ​​ ‍ 二、指令的工作原理 重点:区分物理地址和逻辑地址 ​​ ‍ 三、从写程序到程序运行 ​​ ‍ 四、链接的三种方式 (一)静态链接 在程序运行之前,先将各目标模块及它们所需的库函数连接成一个完整的可执行文件(装入模块),之后不再拆开 (二)装入时动 阅读全文
posted @ 2024-11-29 09:01 Wind_730 阅读(52) 评论(0) 推荐(0)
摘要: (三)死锁检测和解除 ‍ ​​ ‍ (1)死锁的检测 ​​ 理解:在这个图中,以 P2 和 R1 间的箭头为例,表明实际上 P2 请求了两个 R1 资源,但 R1 只给他分配了1个资源。 ‍ 重点:最后能将边全部消除,则没有死锁发生。否则,仍然有边连着且消除不掉的进程则发生了死锁。(可完全简化和不可 阅读全文
posted @ 2024-11-08 09:41 Wind_730 阅读(40) 评论(0) 推荐(0)
摘要: (二)避免死锁 ‍ ​​ ‍ (1)安全序列与不安全状态 ​​ 安全序列: 指如果系统按照这种序列分配资源,则每个进程都能顺利完成。 只要能找出一个安全序列,系统就是安全状态。当然,安全序列可能有多个。 不安全状态: 如果分配了资源之后,系统中找不出任何一个安全序列,系统就进入了不安全状态。 这就意 阅读全文
posted @ 2024-11-08 09:40 Wind_730 阅读(72) 评论(0) 推荐(0)
摘要: (一)预防死锁 ‍ ​​ ‍ 死锁的发生须同时满足四个条件:互斥条件、不剥夺条件、请求和保持条件、循环等待条件。 预防死锁可以分别从破坏这四个条件入手: ‍ (1)破坏互斥条件 理解:在进程和资源之间加多一层,使其对于多个进程来说宏观上看似是可以同时使用的,但实际上仍由系统完成互斥分配。 ​​ ‍ 阅读全文
posted @ 2024-11-08 09:37 Wind_730 阅读(51) 评论(0) 推荐(0)
摘要: 死锁的处理策略 ​​ 阅读全文
posted @ 2024-11-08 09:36 Wind_730 阅读(13) 评论(0) 推荐(0)
摘要: 死锁 ‍ ​​ ‍ 一、死锁的概念 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是“死锁”。发生死锁后若无外力干涉,这些进程都将无法向前推进。 ‍ 二、死锁、饥饿、死循环 死锁: 各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前 阅读全文
posted @ 2024-11-08 09:35 Wind_730 阅读(31) 评论(0) 推荐(0)
摘要: 管程 理解:管程实际上就是对先前的需要一气呵成的各种操作(包括 P、V 操作等)进行封装实现。 ​​ ‍ 一、管程的定义和基本特征 ​​ ‍ 二、引入管程的原因及管程的逻辑实现 关键:在封装下由编译器负责实现互斥特性 ​​ 阅读全文
posted @ 2024-11-08 09:34 Wind_730 阅读(51) 评论(0) 推荐(0)
摘要: 读者-写者问题 一、问题背景及分析 有读者和写者两组并发进程,共享一个文件,当两个或两个以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求: 允许多个读者可以同时对文件执行读操作 只允许一个写者同时往文件中写 阅读全文
posted @ 2024-11-08 09:33 Wind_730 阅读(70) 评论(0) 推荐(0)
摘要: 哲学家进餐问题 一、问题背景及分析 (一)基本分析及实现 每个进程争抢地使用一种资源,其中若分配不当会导致死锁现象。 ​​ ‍ 基本实现: ​​ ‍ (二)避免死锁发生的三种方法(仍有很多种,这里仅作列举参考) (1)限制资源容量 可以对哲学家进程施加一些限制条件,比如最多允许四个哲学家同时进餐。这 阅读全文
posted @ 2024-11-08 09:33 Wind_730 阅读(231) 评论(0) 推荐(0)