二、操作系统基本原理
2.1、概述
- 当处于运行状态的时候可以发生某个事件,使得该进程跳转为等待状态,但是不可能从等待状态直接跳转为运行状态,必须先变为就绪状态,在就绪状态等待CPU的调度 才能成为运行状态,成为运行状态不一定能把自己所有的任务做完,因为CPU很宝贵,如果一个大任务的进程一直进行其他的任务就无法进行了,所以会采取时间片轮转的算法来分配CPU资源,也即是一个进程从就绪到运行只能运行一个时间片,当时间片用完之后,即使任务未完成也得退出这个运行态,进入就绪态,等下一次调度,等下一个时间片轮到该进程的时候才能进入到运行态
2.2.1.2、五态模型
状态的演变
- 当最初的几种状态应用的十分纯熟之后,人们发现基本的三种状态已经不够用了,有时候想人为的将某个进程暂停下来 ,这个时候使用三态模型已经无法满足我们的需求了,所以提出来了五态模型
五态模型的分类
- 运行态
- 活跃就绪态
- 活跃阻塞态
- 静止就绪态
- 静止阻塞态
前三个先当与之前的三态模型
五态的关系
进程的同步和互斥
互斥: 拿单缓冲区举例子是指的市场当中不允许生产者在搬进市场的同时消费者进行搬离市场
同步: 多缓冲区当中,同时允许多个生产者同时搬进去多个东西
2.2.3、PV操作
概念
临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等
临界区:每个进程中访问临界资源的那段代码称为临界区
- 临界区是一个代码段
信 量:是一种特殊的变量
- 其中的就是信 量
例题
例题
设进程为n个 ,每个进程需要K个资源 ,, 则至少需要有 个资源才不会出现死锁
死锁的必要条件
- 互斥
- 保持和等待
- 不剥夺: 系统不会把跟配给进程的资源剥夺掉,去分给其他进程
- 环路等待: A等待B释放资源,B等待C释放资源,C等待A释放资源
死锁的预防
打破四大条件
- 互斥: 资源共享使用
- 保持和等待: 既然得不到资源,那么就将自己得到的资源释放出去
- 不剥夺: 系统剥夺资源
死锁的避免
有序的分配资源
银行家算法
- 分配资源的原则
- 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
- 进程可以分期请求资源,但请求的总数不能超过最大需求量
- 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但是总能使进程在有限的时间里得到资源
银行家算法的例题
2.3、存储管理
概念:
- 把用户程序分成等分大小的页,假设是4K大小,每一个4k大小的块称之为一个页,把内存中的存储区也分成4K一个,在调用用户程序的时候不在把整个应用程序一次性的调用,而是需要使用哪些块,需要使用哪些页,就把哪些页调用进来。这样的话就需要有一个页表,用来记录程序中的哪一页,对应内存地址中的哪些块。
优点:
- 利用率高,碎片小,分配及管理简单
缺点:
- 增加了系统开销;可能产生抖动现象
逻辑地址和物理地址的关系:
- 页内地址相同
- 但是页 和块 不一定相同,
逻辑地址和物理地址的转换
- 将页 和块 相互转换一下,然后拼接上页内地址,就是该内容的物理地址或者逻辑地址
例题:
- 概念
- 段页式存储管理方式即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。右图示出了一个作业的地址空间和地址结构。
- 优点:
- 空间浪费小、存储共享容易、存储保护容易、能动态连接
- 缺点:
- 由于管理软件的増加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降
快表
LRU与FIFO对比
2.4、文件管理
索引文件结构
主要考察绝对路径和相对路径
位示图
2.7、微内核操作系统
虚拟设备与SPOOLING
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!