操作系统-UnixV6pp
发表于|更新于|TongjiCS-笔记term5操作系统
|总字数:4|阅读时长:1分钟|浏览量:
Unix V6++系统



文章作者: BaBaLiBoo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BaBaLiBoo!
相关推荐
2025-11-09
操作系统-3.1内存管理概念
1. 原理程序的链接&装入将用户程序变为内存中可执行程序 编译 链接 静态链接:运行前链接成完整的装入模块 装入时动态链接 运行时动态链接:只在需要它时才进行链接 装入(逻辑地址→物理地址) 绝对装入:绝对地址 可重定位装入: 相对地址,从0开始 装入内存时进行重定位,若起始物理地址为100,所有地址+100 动态重定位 装入时并不会立即将逻辑地址→物理地址,等程序真正执行时才进行 进程的内存映像当一个程序调入内存,就构成进程的内存映像 代码段:机器指令、只读数据 数据段:读/写数据 进程控制块PCB 堆: 存放动态分配的变量。 调用malloc动态向高地址分配空间 栈 实现函数调用 从用户空间最大地址→低地址增长 宏定义常量不专门分配空间,在预编译阶段直接读入 内存保护 ①设上下限寄存器 ②重定位寄存器+界地址寄存器 例:进程A物理地址100-279,逻辑地址0-179 重定位寄存器=100 界地址寄存器=179 此时访问逻辑地址80的内存单元 80<179→未越界(否则抛出异常) 80...
2025-11-06
操作系统-2.2CPU调度
1. 概念CPU调度就是对CPU进行分配。从就绪队列中按照一定算法选择一个进程将CPU分配给它运行。 CPU三级调度 高级(作业调度):从外存后备队列中调选作业分配内存,使之可以竞争CPU 中级(内存调度):提高内存利用率,将不能运行的进程调至外存 低级(进程调度):最基本,给就绪队列中的进程分配CPU 2.实现调度程序由三部分组成 排队器 分派器 上下文切换器 不能进行调度&切换的情况 处理中断过程中 原子操作过程中(连中断都屏蔽) 进程调度方式 非抢占调度 抢占调度(允许更紧迫的插队) 常用计算 周转时间=作业完成时间−提交时间周转时间= 作业完成时间-提交时间周转时间=作业完成时间−提交时间 平均周转时间=(周转时间1+...+周转时间n)/n平均周转时间= (周转时间1+...+周转时间n)/n平均周转时间=(周转时间1+...+周转时间n)/n 带权周转时间=作业周转时间作业实际运行时间带权周转时间=\frac{作业周转时间}{作业实际运行时间}带权周转时间=作业实际运行时间作业周转时间 CPU利用率=CPU有效工作时间CPU有效工作时间+...
2025-10-30
操作系统-2.1进程与线程
程序执行进程基本内容进程的概念进程是程序的一次执行过程 程序是静态的,进程是动态的 进程的组成 PCB:进程控制块。进程存在的唯一标志。进程结束时会回收PCB PID:进程ID,唯一的,不重复 程序段 数据段 进程控制进程的状态与转换 进程的状态转换必须一气呵成(利用“原语”实现) 相关原语原语用关/开中断来实现,不可中断 阻塞和唤醒成对出现 进程通信1. 共享存储 基于存储区的共享(高级) 基于数据结构的共享(低级) 2. 消息传递进程间数据以格式化的消息为单位。 消息头(进程ID,长度等)+消息体(实际数据) 进程通过”发送/接受消息“两个原语进行数据交换。 直接通信:直接指明要通信的进程ID 间接通信:通过”信箱“ 3. 管道通信 相比共享存储,要求数据读写先进先出 管道数据一旦被读出就彻底消失 信号 用于通知进程某个时间已经发生 线程基本线程是程序执行流的最小单位,是调度的基本单位(进程是资源分配的基本单位) 作用:每一个进程可以有多个线程,增加并发度 切换进程开销大;同进程内切换线程开销小 实现...
2025-11-08
操作系统-2.3同步与互斥
1. 概念 临界资源:一次仅允许一个进程使用的资源 访问过程:进入区(检查)-临界区(访问)-退出区-剩余区 同步:直接制约关系,源于进程间相互合作 互斥:间接制约关系 2.互斥实现方法①软件实现 一、单标志法 两个进程轮流进入临界区 不足:若一个无法不不再进入,另一个也将无法进入(违背“空闲让进”原则) 二、双标志先检查法 不足:可能同时进入临界区。即检查对方标志后和设置自己标志之前可能发生进程切换(违背“忙则等待”原则) 三、双标志后检查法 不足:两个都想进时谁都进不了(违背“空闲让进”、“有限等待”原则) 四、Peterson算法(四种算法中最好) ②硬件实现 中断屏蔽方法(最简单,效率降低,不适用多处理系统) 硬件指令方法——TestAndSet指令(原子操作,适用多处理系统,但违背“让权等待”) 硬件指令方法——Swap指令 3.信号量一个变量。表示系统中某种资源的数量。 ①整型信号量 操作:初始化、wait(P操作:“申请”)、signal(V操作:“释放”) 缺陷:不满足“让权等待” ⭐②记录型信号量 在整型基础上加一个进程链表L...
2025-11-08
操作系统-2.4死锁
1. 概念产生必要条件(同时满足) 互斥 不可剥夺 请求并保持 循环等待(必要不充分) 2.预防 3.⭐避免安全序列 按这个序列给系统分配资源,进程能够顺利完成 不安全状态 找不到任何安全序列,系统进入不安全状态。可能发生死锁 银行家算法(安全性算法) ①资源请求 12345678910111213141516// 1. 检查请求是否越界if (Request_i > Need[i]) then ERROR// 2. 检查资源是否足够if (Request_i > Available) then WAIT// 3. 试探性分配Available = Available - Request_iAllocation[i] = Allocation[i] + Request_iNeed[i] = Need[i] - Request_i// 4. 检查安全性if (IsSafe() == TRUE): COMMIT_CHANGES() // 真正分配else: ROLLBACK_CHANGES() // 恢复数据,Pi 等待 ②安全性算法 1234567891...
2025-11-09
操作系统-3.2虚拟内存管理
1. 基础虚拟存储器特性 多次性:作业运行时允许分多次调入内存 对换性:作业运行时不用常驻内存,不用的可以调至外存 虚拟性:逻辑上扩充内存,用户看到的内存容量>>实际容量 虚拟技术实现方式 请求分页 请求分段 请求段页式 2.请求分页页表机制 新增P(是否调入内存)、A(访问次数)、M(是否被修改)、外存地址 缺页中断机构进程执行任务 →缺页 →产生中断 →操作系统检查内存有无空位 有→放入 没有→采用置换算法踢出一个旧页面 地址变换机构**查快表 ** 命中 → 形成物理地址,结束 未命中 → ** 查页表** 页在内存 → 更新快表,形成物理地址,结束 页不在内存 →缺页中断 3.⭐页面置换算法①最佳置换算法(OPT)淘汰:今后最长时间内不再使用的页面 性能最好,但无法实现 ②先进先出置换算法(FIFO)淘汰:最早进入内存的页面 ③最近最久未使用置换算法(LRU)淘汰:最近最久未使用的页面 性能最接近OPT,但开销太大 ④时钟置换算法(CLOCK) 每个页面设一个访问位,初始为0,被访问时置为1。 淘汰扫描到的第一个为0的页面。 ...
公告
我要发大财,
我要坐马车,
我要游山玩水,
我要学以致用!
我要坐马车,
我要游山玩水,
我要学以致用!


