操作系统基础知识
来源:互联网 发布:数控雕刻机怎么编程 编辑:程序博客网 时间:2024/06/07 13:47
操作系统的基本特性 :并发(最主要),共享,虚拟,异步
1.并发性
并行性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在同一时间间隔内发生
进程:系统中分配资源的基本单位,它是由一组机器指令,数据和堆栈组成的,是一个能独立运行的活动实体。
线程:独立运行和独立调度的基本单位。 线程比进程更小,基本上不拥有系统资源,调度开销小,更高效。
2.共享性:系统中的资源可供内存中多个并发执行的进程共同使用 ,分为互斥共享和同时访问
3.虚拟技术:通过某种技术把一个物理实体变为若干个逻辑上的对应物
4..异步性:在多道程序环境下允许多个进程并发执行,但只有进程在获得所需的资源后方能执行
进程管理
1.程序并发执行的特征:间断性,失去封闭性,不可再现性。为使程序可以独立运行,需要配置进程控制块(PCB),由程序段,数据段,PCB构成进程实体。
2. 进程:进程实体的一次执行过程。
动态性:是进程的最基本特征。
并发性:多个进程实体同存于内存中,能在一段时间内同时运行。
独立性:进程实体是一个能独立运行,独立分配资源,独立接受调度的基本单位。
异步性:进程按照独立的,不可预知的速度向前推进。
3. 进程的三种基本状态:就绪状态,执行状态,阻塞状态
就绪状态:已经分配到除CPU以外所有必要资源,只要获得CPU,便可立即执行
执行状态:获得CPU,正在执行
阻塞状态:正在执行的进程由于发生某件事而暂时无法继续执行,也称等待或者封锁
就绪--------(进程调度)-------执行 执行---------(时间片用完)------就绪
执行----------(I/O请求)------阻塞 阻塞-----------(I/O完成)---------就绪
4. 创建状态和终止状态
创建状态:为新进程创建一个PCB,把该进程转入就绪状态并插入就绪队列之中。
终止状态:PCB清零,PCB空间返回给系统。
5. 进程控制块组织方式:链接方式和索引方式
(1)进程标识符用于唯一的标识一个进程
内部标识符:操作系统为进程赋予一个唯一的数字标识符,通常是一个进程序号
外部标识符:创建者提供,用户在访问该进程时使用。
(2)处理机状态 通用寄存器 指令计数器 程序状态字 用户栈指针
(3)进程调度信息 进程状态 进程优先级 进程调度所需的其他信息
(4)进程控制信息 程序和数据的地址进程同步和通信机制资源清单 链接指针
6. 进程控制一般由原语来实现,原语是由若干条指令组成,用于完成一定功能的一个过程。是一个不可分割的单位,不允许被中断。
引起创建进程的事件:用户登录,作业调度,提供服务,应用请求。
7. 进程的创建
(1) 申请空白的PCB
(2) 为新进程分配资源
(3) 初始化进程控制块
(4) 将新进程插入到就绪队列
8. 进程终止
引起进程终止的条件:正常结束 异常结束(错误,超时) 外界干预(父进程终止)
(1) 根据进程标识符,检索出该进程的PCB,从中读取该进程的状态
(2) 若进程处于执行状态,终止执行,调度标志置为真
(3) 若有子孙进程,所有的子孙进程终止
(4) 终止进程所拥有的全部资源
(5) 将被终止进程从所在队列中移出
9.进入阻塞状态
(1) 请求系统服务,系统没有立即执行
(2) 启动某种操作,例如启动了I/O设备
(3) 新数据尚未到达
(4) 无新工作可做
10.进程同步对进程执行顺序上协调,使进程能有效的共享资源和相互合作
两种形式的制约关系:间接相互制约关系(非合作竞争)直接相互制约关系(合作的)
临界资源:一段时间内只允许一个进程访问的资源
访问临界资源的代码称为临界区
进入前检查的代码称为进入区
退出后增加的代码称为退出区
除上述区域之前的区称为剩余区
11. 同步机制遵循的原则
(1) 空闲让进
(2) 忙则等待
(3) 有限等待
(4) 让权等待当进程不能进入自己的临界区时,应立即释放处理机
12.P、V操作
v 操作系统利用信号量实现对进程和资源的控制和管理。信号量的值仅由P、V操作来改。P、V操作是能够实现对临界区管理要求的两条原语,P操作起到了限制一次只有一个进程进入临界区的作用,而V操作将唤醒位于阻塞队列中的头一个进程,使其可以进入临界区,保证了进程在临界区内逗留有限时间。
v P原语操作的主要动作是:
- Semaphore减1;
- 若Semaphore 减1后仍>=0,则进程继续执行。
- 若Semaphore 减1后<0,则进程被阻塞在与该信号相对应的队列中,然后转进程调度。
v V原语操作的主要动作是:
- Semaphore加1;
- 若Semaphore 加1后仍>0,则进程继续执行。
- 若Semaphore 加1后<=0,则从信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。
12. 经典进程同步问题 “生产者—消资者问题”、“读者—写者问题”、“哲学家进餐问题”
13. 进程通信的类型
(1) 共享存储器系统
(1) 共享数据结构 低效的,只能传递相对少量的数据
(2) 共享存储区 可以传输大量的数据
(3) 消息传递系统 进程间的数据交换是以格式化的消息为单位的可大量的传输数据,而且隐藏了通信的实现细节
(4) 管道通信 连接一个读进程和一个写进程以实现他们之间通信的一个共享文件能够传输大量的数据
14. 线程 线程是调度和分派的基本单位 进程作为资源拥有的基本单位
线程不拥有系统资源,但是它可以访问其隶属进程的资源,线程的切换只需保存和设置少量寄存器内容,不涉及存储器管理方面的操作
15. 线程的属性
(1) 轻型实体线程中的实体基本不拥有系统资源
(2) 独立调度和分派的基本单位
(3) 可并发执行
(4) 共享进程资源
16. 多线程中的进程
是系统资源分配的单位
可包括多个线程
进程不是一个可执行的实体,线程才是独立运行的基本单位。
17. 线程间的同步和通信
(1) 互斥锁:用于线程间对资源的互斥访问,适用于高频度使用的数据和程序
(2) 条件变量:条件变量通常与互斥锁一起使用,创建一个互斥锁便联系着一个条件变量。单纯的互斥锁用于短期锁定,条件变量用于线程的长期等待。
18. 线程的实现方式‘
(1) 内核支持线程系统调用进入内核,程序处理完成,在内核的支持下运行
(2) 用户级线程:线程的创建撤销不需要系统调用实现。切换的速度快
对于设置了用户级线程的系统,其调度仍是以进程为单位的。
用户级线程的实现与操作系统平台无关
处理调度与死锁
1. 处理机的调度层次
(1) 高级调度,又称为作业调度或者长程调度,将作业调入内存
作业:除了程序和数据,还有一份作业说明书。批处理系统以作业为基本单位从外存调入内存的。
(2) 低级调度,又称为进程调度或者短程调度,调度对象是进程(或内核级线程)
进程调度的方式:非抢占式和抢占方式
非抢占式特点:实现简单,系统开销小,适用于大多数批处理系统
抢占式:防止长进程长时间占用,提供更公平的服务。开销较大
抢占式应满足的原则:优先权原则,短作业优先,时间片原则
(3) 中级调度又称为中程调度
把那些暂时不能运行的进程放到外存。当内存空闲,进程具备运行条件时,调入内存。
2. 调度方式和调度算法的若干准则
(1) 面向用户的准则
a. 周转时间短作业被提交到作业完成的时间包括:作业在外存等待调度的时间,进程在就绪队列等待调度的时间,在CPU上执行的时间,等待I/O时间
周转时间:从提交到完成的时间T
服务时间:作业运行的时间 Ts
带权周转时间:T/Ts
b. 响应时间快 用户提交一个请求开始,到系统首次响应的时间
c. 截止时间的保证必须完成的最迟时间
d. 优先权原则
(2) 面向系统的准则
a. 系统的吞吐量高单位时间内系统完成的作业数
b. 处理机利用率高
c. 各类资源的平衡利用
3. 调度算法
(1) 先来先服务(FCFS)适用于作业调度和进程调度,比较有利于长作业,不利于短作业
(2) 多作业优先(SJF)降低了平均等待时间,提高了系统吞吐量
对长算法不利,未考虑作业的紧迫程度,
(3) 非抢占式优先权算法主要用于批处理系统
(4) 抢占式优先权算法适用于严格的实时系统,以及对性能要求较高的批处理和分时系统
a. 优先权的类型静态优先权和动态优先权
b. 静态优先权是创建进程时确定的,而且在进程整个运行期间保持不变
确定优先权的依据:进程类型,进程对资源的需求,用户要求
特点:简单易行,系统开销小,但不够精确
c. 动态优先权优先权随着进程推进而改变
(5) 高响应比优先调度算法
优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间
该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长时间得不到服务。计算响应比,会增加系统开销。
(6) 基于时间片的轮转调度算法
时间片的确定:选择小的时间片有利于段作业,但会频繁的发生中断,进程上下文切换,增加系统的开销。时间片很长,便成了先来先服务。所以时间片略大于一次典型的交互所需的时间合适。
a. 多级反馈队列调度算法
设置多个就绪队列,每个队列有不同的优先级。第一个队列优先级最高,其余队列优先权逐渐降低。优先权越高,执行的时间片越短,
当进程进入内存后,先放入第一队列末尾,时间片结束为完成,转到第二队列的末尾。
仅当第一队列空闲时,调度程序才调度第二队列中的进程运行。
4. 实时调度
最早截止时间优先(EDF)
最低松弛度优先(LLF) 根据任务的紧急(或松弛)程度,来确定任务的优先级。
5. 产生死锁的原因和必要条件
(1) 死锁:多个进程运行过程中因争夺资源而造成一种僵局
(2) 产生死锁的原因:竞争资源(多个进程共享资源,其数目不满足进程需要)
进程间推进顺序非法(请求和释放资源顺序不当)
(3) 产生死锁的必要条件
a. 互斥条件一段时间内某个资源只由一个进程占用
b. 请求和保持条件已经保持了至少一个资源,请求新的资源,而资源又被其他进程占用
c. 不可剥夺条件进程获得资源,在未使用完之前,不能被剥夺
d. 环路等待条件 发生死锁,必然存在一个进程---资源环形链
6. 处理死锁的基本方法
(1) 预防死锁破坏死锁产生必要条件的一个或几个
(2) 避免死锁资源动态分配过程中,用某种方法防止系统进入不安全状态 银行家算法
(3) 检测死锁
(4) 解除死锁撤销或者挂起一些进程
7. 预防死锁
(1) 一次性申请整个运行过程中所需的全部资源
特点:简单,易于实现很安全,资源被浪费严重,进程等待资源延时
(2) 当一个已经保持了某些资源的进程,再提出新的资源请求不能立即满足时,必须它已经保持的所有资源
特点:导致反复的申请和释放资源,进程被无限推迟增加了系统的开销,降低系统的吞吐量
(3) 所有资源按类型进行线性排队,并赋予不同的序号。
特点:资源利用率和系统吞吐量有明显的改善,分配序号限制了新设备的增加
8. 系统安全状态
安全状态:允许进程动态的申请资源,但系统在进行资源分配之前,应先计算资源分配的安全性,若此次分配不会导致系统进入不安全状态,则将资源分配给进程
9. 死锁的检测与解除
死锁的检测使用资源分配图
死锁的解除:剥夺资源,撤销进程
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- 操作系统基础知识
- eclipse使用技巧心得分享
- 玲珑杯 J -- Just for Fun
- 哈尔滨理工 oj2293 棋盘村
- 服务降级及dubbo中的实现示例
- Android 彻底解决城区县三级联动问题(3D,2维)
- 操作系统基础知识
- 如何在Vim+Ctags+Taglist应用中添加自定义语言: systemverilog
- Linux系统下的51单片机数码管实现精准计时
- What is the exact meaning of Runtime.getRuntime().totalMemory()
- 查找一个字符串中子串出现的次数
- unityGUI简单滚动JS
- python字典中items()和iteritems()的区别
- iOS_地图大量标记
- 构造方法