操作系统概论


1. 总括


  • 目标:
    1. 方便性(方便用户使用)
    2. 有效性(改善资源利用率提供吞吐量)
    3. 可扩展性(满足新的需求,使用层次化结构)
    4. 开放性(遵循世界标准)
  • 作用
    1. 作为用户与计算机硬件系统之间的接口(命令接口,系统调用,图形、窗口方式)
    2. 系统资源的管理者(处理机,存储器,I/O设备,信息(数据和程序))
    3. 作为扩充器(使其功能增强)
  • 动力
    1. 不断提高资源利用率
    2. 方便使用
    3. 器件更新换代
    4. 计算机体系结构不断发展
  • 发展
    1. 人工操作(人机矛盾严重<人工速度按降低了资源利用率>,CPU与I/O设备速度不匹配)
    2. 脱机输入/输出方式(缓解,通过外围机先将数据存在磁带中)
    3. 单道批处理(提高了资源利用率和吞吐量,很有限)(自动性,顺序性,单道性)
    4. 多道批处理(进一步提高)(多道性,无序性,调度性)(周转时间长(排队),无交互能力)
      • 解决问题:处理机管理,内存管理,I/O设备管理,文件管理,作业管理
    5. 分时系统(人机交互,共享主机,方便使用)(及时接收,及时处理)(多路性,独立性(用户彼此不干扰),及时性,交互性)
    6. 实时系统(实时控制,实时信息处理)(多路,独立,及时,交互,可靠)
  • 特性

    1. 并发(Concurrence)
      * 并发:多个事件同一时间间隔内发生
      * 并行:多个事件同一时刻发生
      * 进程:系统中能独立运行并作为资源分配的基本单位,是一个活动实体,由机器指令数据和堆栈等组成
      * 操作系统引入进程是为了并发执行
    2. 共享(Sharing)
      * 互斥访问(一段时间只允许一个进程/线程访问)
      * 同时访问(宏观上同时,微观上交替,如:磁盘访问)
    3. 虚拟(Virtul)
      * 通过技术把物理实体映射为多个逻辑实体(虚拟内存,虚拟处理机(多道程序设计技术),学你外部设备,虚拟信道等)
    4. 异步性(Asynchronism)
      * 进程以人们不可预知的速度向前推进。但只要运行环境相同,作业经过多次运行,都会获得完全相同的结果
  • 功能

    1. 处理机管理
      * 进程控制
      * 进程同步
      * 进程通信
      * 调度
    2. 存储器管理(为多道程序运行提供良好环境)
      * 内存分配(静态,动态)(内存分配数据结构,内存分配功能,内存回收功能)
      * 内存保护(每个程序只在自己的内存区中运行,比如:设置两个界限寄存器)
      * 地址映射
      * 内存扩充(逻辑上扩充)(请求调入,置换)
    3. 设备管理(管理外围设备)
      * 缓冲管理(缓和速度不匹配,提供利用率)(单缓冲,双缓冲,公用缓冲池机制)
      * 设备分配
      * 设备处理(检查I/O请求合法性,了解设备状态,了解设置参数和工作方式,发出I/O命令,I/O设备执行,随时响应中断)
    4. 文件管理(对用户和系统文件进行管理)
      * 文件存储空间管理(为每个文件分配外存空间,提高外存利用率,提供文件系统运行速度)
      * 目录管理(方便用户查找文件,提高文件检索速度)
      * 文件读/写管理和保护(根据文件名检索获取位置,利用文件指针读写,修改读写指针,为下一次做准备)(防止文件被非法窃取和破坏)
    5. 用户接口
      * 命令接口(联机(未联机用户提供),脱机(为批处理作业的用户提供))
      * 程序接口
      * 图形接口
  • 结构
    • 无结构(一组过程的集合)
    • 模块化结构(提高正确性,可理解性,可维护性,适应性,加速了开发过程)
    • 分层结构(每一层仅仅使用底层提供的功能和服务)
    • 微内核结构(适用分布式环境)
      1. Client-Server Model(所有服务都是一个服务器进程,运行在用户方式,之间通信由内核完成)(灵活性,可扩充性,可靠性高,可运行与分布式系统中)
      2. 微内核技术:能实现现代OS核心功能的小型内核,小而精炼运行在内核太,开机后常驻内存,不是完整的OS
      3. 功能:进程管理,存储器管理,进程通信管理,I/O设备管理

2. 进程管理


  • 程序执行时特征: 顺序性,封闭性, 可再现性
  • 并发执行时特征: 间断性,失去封闭性,不可再现性
  • 进程构成: 程序段,数据段,PCB(程序控制块)
  • 创建进程就是创建PCB
  • 动态性,并发性,独立性,异步性
  • 进程状态:就绪(Ready)状态,运行状态, 阻塞状态,挂起状态
  • 状态转换:
    1. 活动就绪(Readya)<–>静止就绪(Readys,挂起)
    2. 活动阻塞<–>静止阻塞
  • PCB: 记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息(进程标识符,处理机状态,进程调度信息,今晨个控制信息)
  • PCB组织方式:链接方式,索引方式
  • 阻塞原语(block), 唤醒原语(wakeup), 挂起原语(suspend), 激活原语(active)
  • 邻接资源(Critical Resouce),
  • 临界区(Critical section):每个进程中访问临界资源的代码段
  • 在临界区前后加入进入区和退出区
  • 同步机制的规则: 空闲让进,忙则等待,有限等待,让权等待
  • 整型信号量(忙等),记录型信号量(让权等待),AND型信号量(将所需资源一次性全部分配给进程,待使用完后一起释放),信号量集(一次需要N个资源,相比记录型信号量效率高很多)
  • 哲学家就餐问题。为了防止死锁,可采用
    1. 至多允许四个哲学家同时拿左边的筷子
    2. 仅当左右两边的筷子均可用时,才允许拿筷子进餐
    3. 奇数哲学家,先拿左手筷子,再拿有手筷子,偶数则相反
  • 为了管理方便,有一种新的进程同步工具–管程(Monitors)
  • 管程设置wait和signal原语,等待原因很多,引入条件变量Condition
  • 进程通信
    1. 共享存储器系统(共享数据结构的通信方式(低效,适用少量数据 ),共享存储区的通信方式(传输大量数据))
    2. 消息传递系统(进程间数据交换以格式化的消息为单位,直接使用系统提供的通信命令进行通信)
    3. 管道通信(以字符流形式)
  • 线程
    1. 目的: 为了减少程序并发执行所付出的时空开销。
    2. 线程是独立调度和分派的基本单位,可并发执行,共享进程资源,轻型实体
    3. 多线程的进程:作为资源分配的基本单位,可包含多个线程,不是一个可执行的实体
    4. 同步机制:互斥锁,条件变量,信号量
    5. 传统os中进程切换必须有用户态转为内核态,再由核心来切换任务,而线程不需要
    6. 内核控制线程(轻型进程LWP),当用户线程运行时只要连接到一个LWP上就可以了,LWP可以把用户级线程和内核线程连接起来,用户线程可通过LWP来访问内核,但内核看到的总是多个LWP,而看不到用户级线程。由LWP实现在内核与用户级线程之间的隔离,从而使用户级线程与内核无关

3.处理机调度和死锁


  • *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值