• 操作系统概论-02


    2】处理器管理

    2.1.1程序的顺序执行

    程序执行的先后是顺序的,也就是

    输入数据-->处理数据-->打印处理结果--输入数据...

    2.1.2程序的并行执行

    现代计算机都具有处理器与外围设备的并行能力 我们把程序的执行分成三个可独立执行的程序模块:输入程序,处理程序 打印程序

    2.1.3 多道程序设计

    多个计算同时进入一个计算机的主存储器并行政性,这种程序设计方法称为多道程序设计。这样的操作系统称为多道程序设计系统。

    对具有处理器于外围设备并行工作能的计算机采用多道程序设计,能充分发挥处理器的使用效率,增加单位时间内计算量

    2.2进程的概念

    2.2.1 进程 把一个程序在一个数据集上的一次执行称之为进程 程序是静止的 进程是动态的

    2.2.2 为什么要引入进程,(进程的作用)

    1提高资源利用率 2正确描述程序的执行情况

    2.2.3进程的属性

    1进程是动态的,它包含了数据和运行在数据集上的程序 2多个进程可以有相同的程序

    3多个进程可以并发执行 一个进程已经开始工作,但是还没有结束之前,另一个进程也可以开始工作,把这些进程

    称之为同时执行的进程,或称为进程的并发执行

    4 进程有三种基本状态,运行态 等待态 就绪态

    因为若干进程是轮流在cpu上面执执行的,为了方便进程的轮转我们把进程分成三种基本定义

    1> 等待态 等待某一事件

    2>就绪态 等待系统分配处理器以便运行

    3>运行态 正在占用处理器运行

    而进程是可以在这些状态中相互转换的

    1>运行态->等待态[1启动外围设备,等待外围设备传输结束][2进程在运行中申请资源得不到满足--变成等待分配资源状态]

    [3] 程序运行出现故障,变成排除干预状态

    2>等待态->就绪态[1 外围设备工作结束 使等待外围设备传输者结束等待][2申请资源得到满足][3 程序故障排除后等待排除干预状态]

    一个进程等待结束 必须先转换中等待态 当分配到处理器的时候 才能运行

    3>运行态->就绪态[1] 分配给进程占用处理的时间用完,而让出处理器[2 有优先级更高的进程要运行]

    4>就绪态->运行态[1有多个进程等待分配处理器的时候,系统按照一种规则的策略从多个处于就绪状态的进程中选择一个进程 让它占有 处理器]

    通过上面四个基本属性我们归纳进程的的四个特点 1动态性- 进程状态一直变化 2 并发性 进程是可以同时执行的,轮流占用处理器交替 执行,3异步性 进程的执行速度取决于自身与外界的原因以及进程的调度策略,因此以不可预支的速度向前推进

    2.3 进程的控制块

    为了能区别各个不同的进程,记录各个进程执行时的情况,对每个进程都设有一个 进程控制块 pcb

    进程控制块就是对进程进行管理和调度的信息集合

    1标识信息-进程名

    2说明信息 进程状态 等待原因 进程程序存放位置 进程数据存放位置

    3现场信息 通用寄存器内容 控制寄存器内容 程序状态字寄存器内容

    4管理信息 进程优先数 队列指针

    一个进程执行中,为了请求某种服务,可以要求创建其他进程,而操作系统往往设计一些能完成特定功能且不可中断的过程,这些不可以中断的过程称之为原语,用于控制进程的原语有

    1 创建原语,为一个进程分配一个工作区 和建立一个进程控制块并置进程为就绪状态

    2 撤销原语 一个进程完成工作后 回收它的工作区和进程控制块

    3阻塞原语 程序运行过程中发生等待事件 把进程状态改为就绪态

    4 唤醒原语 当进程等待的事件发生时,把进程的状态改为就绪态

    2.4 进程队列

    一个创建的进程有时候不能立刻得到处理器的执行,这个时候它的状态就是就绪态,在单处理器的情况下,一次同时只能执行一个进程

    --在多道程序设置系统中,往往会创建多个进程,这些被创建的若干就进程可以按照一定次序排成队列 称为就绪队列

    一个进程从锁在的队伍中退出叫出队,一个进程排入到一个指定的队列中称之为入队 系统中负责进程入队和出队的工作称之为 队列管理.

    2.5 中断

    2.5.1中断

    由于某些事情的出现,中止现行进程的运行,而由于操作系统去处理出现的事件,待适当的时候让被中止的进程继续运行

    这过程称之为中断,引起中断的事件称之为中断源 对出现的事件进行处理的程序称之为中断处理程序

    2.5.2 中断类型

    1 硬件故障中断 2 程序出错 3外部中断4输入/输出中断 5访管中断

    前四种都不是进程所期待的,而且是由于外界的原因导致正在运行的程序被打断,因此成为强迫性中断事件

    第五种是进程所期待的 表示当前程序对操作系统由某种需求 成为自愿性中断事件 在小型机和微机计算机中称之为系统调用

    2.5.3 中断响应

    通常在处理器执行完一条指令后,硬件的中断装置立即检查有无枪不行中断事件发生,无论发生那类中断事件,都由硬件的中断装置暂停现行 进程的运行,而让操作系统的中断处理程序占用处理器 这一过程就是中断响应

    我们知道每个程序都有一个psw来刻画本程序的执行状态。在单处理器的计算器中 整个系统总是设置一个用来存放当前运行进程的psw的寄 存器 --》程序状态字寄存器

    2.5.4 中断处理

    中断处理程序对中断事件的处理分为两步 第一步保护被中断进程的现场信息 第二步根据旧psw中指示的中断事件进行具体处理

    中断响应的三项工作为检查是否有中断事件发生,保护断点等信息和启动操作系统的中断处理程序 

    2.6处理器调度

    2.6.1处理器的两级调度

    输入井 --在操作系统中吧磁盘上面用来存放作业信息的专用区称之为输入井

    后备作业 在输入井中等待处理的作业称为后备作业

    作业调度 从输入井中选取后备作业装入主存储器的工作

    进程调度 按照一定的规则从就绪态选取一个进程,让它占用cpu 这项从就绪进程中选取一个进程,让他占用cpu的工作称之进程调度

      2.6.2 作业调度算法 作业调度算法规定了从后备作业中选择作业进入主存储器运行_的原则。 

    设计调度算法的原则

    1 公平性 用用户公平 不能无故或无限拖延一个作业的执行

    2 平很资源使用 尽可能使系统资源都处于忙碌

    3 极大的流量 在单位时间内尽可能的作业服务 保证计算机系统的吞吐能力

    1 先来先服务算法     

    按照输入井的先后次序来挑选作业,先进入的作业优先被挑选 但是不一定先进入的作业一定先选中 要看是否满足必要条件

    如果排队到一个进程 当前条件不满足 而满足后面的进程 会优先执行后面的进程。这种算法的缺点系统吞吐能力降低

    特点 :利于长作业 不利于短作业 简单易实现 效率低 只顾等待时间不顾执行时间 属于非剥夺式调度

         重点:周转时间=结束时间点减去装入输入井的时间
    2计算时间短的作业优先算法

                    先对自己的作业需要计算的时间预先做一个估计,作业调度时依据输入井中的作业提出的计算时间为标准,优先让计算时间短的作业

    优先算法 特点 属于非剥夺式调度降低平均等待时间 提高系统吞吐量 对长作业不利

                   3响应比高者优先算法

    响应比 = 等待时间/计算时间 属于非剥夺式调度

    R = 系统响应时间/作业要求运行时间 = 作业等待时间+作业要求时间/作业要求时间

                   4优先级调度算法:分为非抢占式:被调用进程一直运行 直到结束或等待事件发生才主动放弃CPU

    抢占式:运行中的进程将cpu的使用权优先让给优先权高的

                   5时间片轮转调度算法 :进程在规定的时间内没有结束 系统将产生一个中断 属于剥夺式算法

                   6最短剩余时间优先算法:短进程优先调度算法改造得到的剥夺式算法

    实时调度 :任务的空间时间 = 任务的截止时间 - 任务剩余执行时间-当前时间

    2.7 线程        

      2.7.1什么是线程

    在现在操作系统中,把用户的一个计算问题或者一个应用问题作为一个进程,那么把进程中可以并发执行的各个部分分别作为线程

    2.7.2 为什么引入进程

    采用多线程技术有明显的优越性

    1 减少了进程也就是节省了分配进程控制块和工作区的开销 2> 创建线程需要为线程创建一张线程描述表 记录线程的活动情况,但是不分配资源所以速度快3>线程之间的信息传递在统一主存上进行,速度快 4>i线程能独立执行 能充分利用和发挥处理器和外围设备的并行能力

    2.7.3 线程的属性

    线程有以下属性

    1>同一进程中的各个线程驻留在分配给进程的主存地址空间中,且共享该进程的所有资源

    2>一个线程被创建后便开始它是生命周期,直到执行结束,线程在生命周期内会经历 等待态 就绪态 和运行态等各种状态变化

    3>线程是处理器的独立调度单位, 多个线程可以并发执行

    4>不同的线程可以执行相同的程序

    线程和进程的根本区别 进程作为资源分配单位,而线程是调度和执行的单位  每一个进程都有自己的主存空间 但是同一个进程中的各个线程共享该进程的主存空间,进程中的所有线程对进程的整个主存空间都有存储权限。

  • 相关阅读:
    Xcode7.x中安装Alcatraz
    iOS开发:一个无限滚动自动播放图片的Demo(Swift语言编码)
    ios开发:一个音乐播放器的设计与实现
    iOS开发:深入理解GCD 第二篇(dispatch_group、dispatch_barrier、基于线程安全的多读单写)
    iOS开发:XCTest单元测试(附上一个单例的测试代码)
    设计模式之构造者模式
    控制流程
    变量与常量定义
    go语言内置基础类型
    解决Win10 Virtualbox5.2.18桥接不能联网小记
  • 原文地址:https://www.cnblogs.com/nerdlerss/p/7721895.html
Copyright © 2020-2023  润新知