操作系统简介 - hjksga

操作系统

两大操作系统会议:(sosp)(usenit)
功能:对上:控制软件(应用程序通过操作系统提供的API(应用程序接口)来使用物理资源);对下:资源分配器。
组成:cpu调度器;物理内存管理;虚拟内存管理;文件系统管理;中断处理与设备驱动。
特征:并发(一段时间内,多个程序可以运行);共享;虚拟;异步;

操作系统的启动

硬盘(DISK):存放OS
BIOS:基本I/o处理系统
bootloader:加载OS

中断异常和系统调用

中断:由外设造成;异常:应用程序意想不到的行为;系统调用:应用程序请求操作提供服务。

硬件

设置标记号:1:将内部,外部事件设置标记号;2:依据事件的ID来找到对应的事件。

软件

(用户态:cpu不能访问特定的指令,内核态:OS能使用任何指令)

中断:1:保存当前处理状态;2:中断服务程序处理;3:清除中断标记;4:恢复之前保存的处理状态。
异常:1:保存现场;2-1:杀死产生异常的程序;2-2:OS弥补服务,重新执行异常指令;3:恢复现场。
系统调用:程序通过高层次API来进行系统调用;1:OS从用户态转换到内核态;(应用程序和OS拥有各自的堆栈)2:OS对系统调用ID号做出标识,完成服务。

计算机体系结构及内存分层体系

计算机体系结构:CPU,内存,设备。
内存:cpu:寄存器,L1缓存,L2缓存;主存;磁盘。
OS管理内存的不同方法:程序重定位;分段;分页;虚拟内存;按需分页虚拟内存。

地址空间与地址生成

逻辑地址空间通过OS访问物理地址空间。
逻辑地址空间生成:应用软件使用指令的逻辑地址,通过cpu里面的mmu表(逻辑地址到物理地址映射表)找到对应的物理地址,过程中OS的作用就是提前建立逻辑地址到物理地址的映射表。OS要确保程序有效访问的地址空间,(地址空间包括:起始地址;长度)

连续物理内存分配

(程序的物理空间是连续的)

内存碎片与分区的动态分配

(内存碎片:内存中不能被利用的空闲空间)

外部碎片:在分配单元之间未使用的内存
内部碎片:在分配单元内未使用的内存

分区的动态分配

OS管理内存的作用:1:OS要在内存中分配一个连续的区域让程序跑起来。2:程序在运行中需要访问数据,这时候OS需要给数据一个连续的内存空间。
OS简单分配方式:首次适配;最优适配;最差适配。
**首次适配算法:**把空闲内存块按地址排序,从0地址开始找,第一个满足地址大小的块就被分配出去了,回收的时候看能不能把相邻的空闲分区合并。(简单,易于产生更大空闲块,但容易产生外碎片)
**最优分配算法:**按空闲块大小排序,分配最适合地址大小的快,回收的时候看能不能把相邻的空闲分区合并。(对分配小尺寸的地址很有效,比较简单,但不利于外部碎片后续的管理)
**最差适配算法:**按空闲块大小排序,分配最大的快,回收的时候看能不能把相邻的空闲分区合并。(对分配中大的快效果最好,后续若有大块则不易分配)
压缩式碎片整理:当程序处于等待状态时,把地址块进行移动,减少外部碎片。
交换式碎片整理:把等待程序的地址块从内存移到磁盘,当等待的程序要运行时,则从磁盘移到内存。

非连续物理内存分配

(程序的物理空间是非连续的,能更好利用内存空间,允许共享,支持动态加载,但开销很大,思考如何建立虚拟地址和物理地址之间的转换需要相应的软件方案和硬件方案。硬件上为了解决开销问题,采用两种方法:分段;分页

分段?

(一维的逻辑地址:段号(s):段起始号,段内偏移(addr):段长度)

段访问机制:方案一:段寄存器+地址寄存器(eg:x86);方案二:单地址实现方案

分页?

(页是连续的虚拟内存,帧是非连续的物理内存,通过OS建立的页表(页+帧)由逻辑页地址到物理帧地址。页的大小是2的n次幂,每页的大小一样。)
帧地址:帧号+帧偏移
页地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值