网站积分解决方案网址大全名称
华科软院的操作系统原理期末复习的一些粗略的笔记
中断技术:CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。
通道技术:专门处理外设与内存之间的数据传输的处理机。
Unix:第一个实用化的分时操作系统
Minix:微内核架构
Linux:层次式结构,单体内核、宏内核
层次式结构:把所有功能模块按照调用次序分别排成若干层,确保各层之间只能是单向依赖或单向调用
分层原则:
硬件相关——最底层
外部特性——最外层
中间层——调用次序或消息传递顺序
共性的服务——较低层
活跃功能——较低层
管态:介于核态和用户态之间
Intel CPU的态:Ring 0 ~ Ring 3(Ring 0最核心,Ring 3最外层)
用户态向核态转换的情形:用户请求OS提供服务、发生中断、用户进程产生错误(内部中断)、用户态企图执行特权指令
核态向用户态转换的情形:一般是中断返回IRET
引入中断的目的:实现并发活动、实现实时处理、故障自动处理
- 实模式(实地址模式)
- 程序按照8086寻址方法访问0h—FFFFFh(1MB)空间
- 寻址方式:物理地址(20位)=段地址:偏移地址。
- CPU单任务运行
- 保护模式(内存保护模式)
- 寻址方式:段(32位)和偏移量(32位),寻址4GB
- 段的属性:起始地址,存取属性,权限级别,…
- 段页式寻址机制(段,页)
- 新增32位寄存器:GDR,LDR,CR0,CR1,CR2,…
- 段的属性:起始地址,存取属性,权限级别,…
- 虚拟地址,进程,封闭空间
- 应用程序和操作系统的运行环境都被保护
- CPU支持多任务
- 寻址方式:段(32位)和偏移量(32位),寻址4GB
- 实模式存取的1M空间
- 前面640K 【00000 -- 9FFFF】 :基本内存
- 中间128K 【A0000 -- BFFFF】 :显卡显存
- 末尾256K 【C0000 -- FFFFF】 : BIOS
- C0000 -- C7FFF:显示卡BIOS
- C8000 -- CBFFF:IDE控制器BIOS
- F0000 – FFFFF:最后64KB,系统BIOS
BIOS使用的中断类型号为10H ~ 1FH
按下PowerOn或者Reset键:开始执行( FFFF0 )单元的指令JUMP POST;POST位于系统BIOS内部
MBR:512 BYTES,以AA55h结束
操作系统的用户界面:操作界面和系统调用
管道:特殊的重定向操作把一个程序的输出作为另一个程序的输入
DOS 09号调用:显示字符串
具体OS中系统调用的实现
DOS: INT 21H
LINUX:INT 80H
守护进程:即使控制终端关闭,它也不会结束,独立于控制终端
要使普通进程脱离控制终端的约束,必须把它变成一个守护进程
进程没有从阻塞到运行或从就绪到阻塞的状态转换
进程控制块(PCB):描述进程的状态、资源、和相关进程的关系的一种数据结构,PCB是进程的标志,创建进程时创建PCB;进程撤销后PCB同时撤销。
子进程是父进程的复制
关于fork 的返回值:pid,在子进程中,pid =0,在父进程中,pid > 0(子进程ID),出错:pid=-1
Linux的第一个进程是init进程
所有进程都是init子孙进程
调用exit后进程变为僵尸状态,放弃了几乎所有内存空间,不再被调度,但保留有pcb信息供wait收集
线程是CPU的调度单位
Windows:
CreateProcess 创建进程
CreateThread 创建线程
ExitProcess 撤销进程
Linux:
pthread_create 创建线程
S=0:上锁,S=1:开锁
- 空闲让进
- 当无进程处于临界区时,任何有权进程可进入临界区。
- 忙则等待
- 当临界区忙时,其他进程必须在临界区外等待。
- 有限等待
- 进程进入临界区的请求应在有限时间内得到满足
- 思考:临界区的设置大些好还是小些好?
- 让权等待
- 等待进程放弃CPU。(让其它进程有机会得到CPU)。
- P操作的原理(P(S,q) ,简记P(S))
- S值减1;
- 若差大于或等于零,该进程继续;
- 若差小于零,则该进程阻塞并加入到队列q中,并转调度函数。
- V操作的原理(V(S,q) ,简记V(S))
- s值加1a;
- 若和大于零,该进程继续;
- 若和小于或等于零,该进程继续同时从q中唤醒一个进程。
- 信号量的物理含义:
- S>0,表示有S个资源可用
- S=0,表示无资源可用
- S<0,则|S|表示S等待队列中的进程个数
- P(S):表示申请资源
- V(S)表示释放资源。信号量的初值应该大于等于0
- P-V操作必须成对出现,有一个P操作就一定有一个V操作
- 当为互斥操作时,它们同处于同一进程
- 当为同步操作时,则不在同一进程中出现
- 如果两个P操作在一起,顺序很重要。[同步P操作在互斥P操作前],两个V操作的顺序无关紧要。
- 关于死锁的一些结论
- 参与死锁的进程至少是2个
- 两个以上进程才会出现死锁
- 参与死锁的进程至少有2个已经占有资源
- 参与死锁的所有进程都在等待资源
- 参与死锁的进程是当前系统中所有进程的子集
- 死锁会浪费大量系统资源,甚至导致系统崩溃
- 参与死锁的进程至少是2个
预防死锁:破坏条件,较易实现,资源利用率和吞吐量降低
避免死锁:需要较弱的限制条件,可获得较高的资源利用率和系统吞吐量,实现较难
检测和恢复死锁:允许死锁发生,但可通过检测机制及时检测出死锁状态,并精确确定与死锁有关的进程和资源,然后采取适当措施,将系统中已发生的死锁清除,将进程从死锁状态解脱出来。实现难度大,但可获得较好的资源利用率和系统吞吐量。
有序资源分配法:破坏环路条件,使得环路无法构成。
schedule函数:实现进程调度
- 静态地址映射
- 逻辑地址:VA(Virtual Addr. Register )
- 装入基址:BA(Base Addr. Register)
- 物理地址:MA(Memory Addr. Register)
- MA = BA + VA
动态地址映射:在程序执行过程中把逻辑地址转换为物理地址
虚拟存储:把进程当前正在运行的部分装入内存(迁入),把当前不运行的部分暂时存放在辅存上(迁出),尽量腾出足够的内存供进程正常运行
内存分配
存储保护
单一区存储管理:DOS
页式存储管理:
-
- 把进程空间(虚拟)和内存空间都划分成等大小的小片
- 小片的典型大小:1K,2K或4K…
- 进程的小片——页(虚拟页或页面)
- 内存的小片——页框(物理页)
- 把进程空间(虚拟)和内存空间都划分成等大小的小片
- 进程装入和使用内存的原则
- 内存以页框为单位分配使用。
- 进程以页为单位装入内存
- 只把程序部分页装入内存便可运行。
- 页在内存中占用的页框不必相邻。
- 需要新页时,按需从硬盘调入内存。
- 不再运行的页及时删除,腾出空间
页编号 = VA / 页大小
页内偏移 = VA % 页大小
页面映射表:记录页与页框之间的对应关系。也叫页表。
- 实模式(Real Mode)
- 20位地址
- 20位:1M内存空间
- 段地址(16位):偏移地址(16位)
- 段地址16字节对齐
- 20位地址
- 保护模式(Protect Mode)
- 32位地址空间:4G物理内存
- 支持多任务,能够快速地进行任务切换和保护任务环境
- 支持资源共享,能保证代码和数据的安全和任务隔离
- 支持分段机制和分页机制
文件的逻辑结构:流式文件(现代操作系统)和记录式文件
文件的存取方法:顺序存取和随机存取