操作系统的目标:

  • 方便:使计算机系统易用
  • 有效:以更有效的方式使用计算机系统资源
  • 扩展:方便用户有效开发、测试和引进新功能


操作系统

    作用:        

          1. 有效的管理资源

          2.通过命令接口、编程接口等为用户提供各种功能服务

          3.对硬件机器的扩展

        特征:

            1.并发——处理多个同时性活动的能力。(同个时间段)

              2.并行——指不同程序同时在多个硬件部件上执行。(同个时间点)

              3.共享。

              4.虚拟。——可以提高资源利用率。

              5.随机。——不可预测的次序。

实时操作系统:

        目标:

                对外部请求在严格时间范围内作出响应

                高可靠性

Linux中的中断向量表:

操作系统知识点_临界区


多到程序设计:

        允许多个程序同时进入内存并行,其目的是为了提稿系统效率。

并发环境:

        多个程序同时处于开始运行但尚未结束的状态,并且次序不是事先确定的

进程的定义:

        进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源 分配和调度的独立单位。

又称    任务:

        程序的一次执行过程。

        是正在运行程序的抽象。

        将一个CPU变幻成多个虚拟的CPU

        系统资源以进程为单位分配,入内存、文件、.......每个具有独立的地址空间。

        操作系统将CPU调度给需要的进程。


PCB(进程控制块)是系统感知进程存在的唯一标志

            ——》进程与PCB是一一对应的


进程的三种基本状态:

        运行态、就绪态、阻塞态

运行态:

        占有CPU,并在CPU上运行

就绪态:

        已经具备运行条件,由于没有空闲CPU,而暂时不能运行。

阻塞态:(等待态、封锁态、睡眠态)

        因等待某一事件而暂时不能运行


进程与程序的区别:

        1.进程更能准确刻画并发,而程序不能。

        2.程序是静态的,进程是动态的

        3.进程有生命周期的,有诞生有消亡,短暂的;而程序是相对长久的。

        4.一个程序可对应多个进程

        5.进程具有创建其他进程的功能

线程的引入:

        在进程中再派生线程的三个理由:

                应用的需要

                开销的考虑 

                性能的考虑

如果没有线程?

        一个服务进程

                顺序编程;性能下降

        有限状态机

                编程模型复杂;采用非阻塞I/O


直接开销:内核完成切换所用的CPU时间

  • 保存和恢复寄存器.......
  • 切换地址空间(相关指令比较昂贵)

间接开销

  • 高速缓存、缓冲区缓存和TLB失效

优先级反转问题:

    影响:

            系统错误

            高优先级进程停滞不前,导致系统性能降低

    解决方案:

            设置优先级上限

            优先级继承

            使用中断禁止


典型系统所采用的的调度算法

  • Unix        动态优先数法
  • 5.3BSD    多级反馈队列法
  • Linux        抢占式调度
  • Windows   基于优先级的抢占式多任务调度
  • Solaris        综合调度算法

信号量及P、V操作:

  • P、V操作为原语操作
  • 在信号量上定义了三个操作
  • 初始化(非负数)、P操作、V操作
  • 最初提出的是二元信号量——解决互斥,    之后,推广到一般信号量(多值)或计数信号量(解决同步)

用PV操作解决进程间互斥(mutex)问题:

  • 分析并发进程的关键活动,划定临界区
  • 设置信号量mutex,初值为1
  • 在临界区前实施P(mutex)
  • 在临界区之后实施V(mutex)