什么是os
从用户的角度看呢,os是用户和硬件系统的借口。
从资源管理角度看,os是资源的管理者,这句话我觉得是核心,os是计算机的资源管理者,管理计算机的很多资源。
从虚拟机角度看,os是一组命令
os到底是干啥的
os是程序的集合,管理资源(处理器资源,存储器资源,文件管理,内存管理等等)
*** 作系统的四大特性
- 并发性:(多个事件在同一个时间间隔内发生)共享:(互斥共享和同时共享):临界资源只允许一个进程在这段时间访问,和多个进程可以同时访问。虚拟:把一个物理实体,变成若干个逻辑实体。异步:进程的推进顺序是不可预知的。因为竞争资源的存在导致。
其中,并发和共享互为存在条件,如果不并发,共享就没有意义。如果不共享,无法并发。
处理机的特权级
分级是为了保护os的系统,不可能让用户级的程序拥有太大的权利的。
- 管态:又称系统态,处于这个状态的进程可以使用所有指令,特权非特权级别的指令都可以使用。目态:又称用户态,只能是有非特权指令,并且只能访问自身所在的存储区域。
系统调用
- 系统调用的流程提取如下:
用户发送请求系统调用指令传递系统调用的参数执行trap(陷入)指令执行相应的服务程序返回用户态 系统调用本身是 *** 作系统为了用户提供的一些接口,一些高级的语言比如C,Java会封装这些系统调用成为一些库函数。而系统调用
进程的一些知识点
- 进程是静止的程序。也可以说进程是程序的一次执行过程。而程序本身是一个指令的集合。程序和进程不是一一对应的,一个程序可以对应多个进程,(多次执行)。程序的执行可以分为顺序执行与并发执行
- 顺序执行:
顺序性:指令自上而下,一条一条运行封闭性:指令的执行与外界因素没什么关系可再现性:再一次运行运行程序,结果相同 并发执行:
间隔性:运行一段时间,暂停一段时间。不可再现:由于推进速度的不同,结果可能会不一样失去封闭性:本进程暂停运行的同事,可能会有其他的进程来修改本进程所需要的资源。
- 动态独立性(它是系统资源分配的最小单位)并发性异步性
- pcb(记录了这个进程的一些信息,相当重要)数据段程序段
- 记录进程的动态特征是进程存在的唯一标志pcb的一部分一直存在在内存中,也就是,就算虚拟内存在,也不会全部调出去。
- 同步的原则:
- 空闲让进:临界区资源空就可以拿到忙则等待:临界区资源不空,就等待别的进程用完有限等待:不能一直无限期等下去让权等待:没有拿到临界区资源的进程,释放cpu
- 调度的时机
- 时间片用到了申请临界区资源需要等待中断返回等
- 先来先服务(FCFS):哪个进程先进入,就先处理它,处理完再说(对短进程不利)短作业优先:短的进程先服务(对长进程不利)优先级算法:有两种,静态的就是对进程设定权重,权重大的先服务,动态的是等待时间越久优先级越大。时间片轮转调度:一个进程分配一个时间片,运行结束,就让出cpu。多级反馈调度:优先级高的队列越能进入cpu,一个队列中的进程是遵循FCFS来执行的。
8.进程状态图
- 管道通信(匿名管道)有名管道信号消息队列信号量共享内存套接字
线程的一些知识点:
- 进程是系统分配资源最小的单位。但是县城是cpu执行的最小单位。属性有:
- 并发性共享所属进程所有的资源
- 互斥量信号量事件
3.线程分为用户级线程和系统进程。
死锁
死锁:一组进程中,每个进程都在无限等待另一个进程释放资源。
- 死锁产生的原因
- 竞争资源:资源够多就不需要竞争了。进程的推进顺序不当
- 互斥环路等待请求与保持不剥夺
存储器管理
- 内存的分配
- 分区分配,分区等长,或者分区不等长可变分区分配
- 首次适应最佳适应最坏适应
- 分页
- 基本概念:页面=页,页框=帧。地址结构 页号P + 页内地址d页表:
理解这张图就能把页表这个概念理解透彻了。
虚拟地址分为,页号,页内地址。首先根据页号找到页表中块的存储位置,再根据页内地址映射出真实的物理地址。多级页表:多级页表的存在主要是为了解决页表太大,读取一张页表很占内存的问题。快表:块表的存在是记录近几次访问到的内存地址,提高访问速度。如果这个页号是之前存在快表中的,那无需读取页表,直接访问内存地址即可。分页是对程序员隐藏的,就是不可见的,虽然提高了内存的利用率,但是对于使用者来说是一个黑盒
虚拟存储(两张图)
- 页表项
- 页号物理块:在内存中的地址状态位:是否在内存访问字段:提供页面置换算法使用修改为:是否被修改外存地址:如果放在外存,那是放在了哪儿
- 先进先出始终算法LRU算法最佳算法(不可能存在)
- 程序请求程序是否越界(越界就越界中断)访问页表(页在内存中),不在内存中就缺页中断,内存没满就让这一页进入内存,满了就用置换算法换出来一页。修改块表。形成真实地址。
cpu寻址
- 为什么要有虚拟地址空间?如果程序都是直接访问物理内存,很容易因为修改某个单元导致系统崩溃。使用虚拟地址可以用不相领的内存缓冲,隐藏了真是地址。现代处理器使用的都是虚拟寻址,cpu将虚拟地址翻译成物理地址,这样才能访问到真是的物理内存。cpu中含有一个被称为内存管理单元的硬件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)