• 曾梦想仗剑走天涯


    1+P83

    各种软件通过OS提供的资源抽象使用硬件资源
    OS允许不同程序共享硬件资源

    基本功能……
    提供操作界面
    控制程序运行
    管理系统资源
    配置系统参数
    监控系统状态
    工具软件集合

    操作系统是一个大型的程序系统,它负责计算机系
    统软、硬件资源的分配;控制和协调并发活动;提
    供用户接口,使用户获得良好的工作环境。

    • 操作系统的特性
      并发性
      共享性
      不确定性

    操作系统的功能一

    进程管理

    处理机分配
    CPU管理
    处理机管理
    具体功能
    进程控制:创建,暂停,唤醒,撤销
    进程调度:调度策略,优先级
    进程通信:进程间通信

    操作系统的功能二

    存储管理

    为应用程序运行高效提供内存空间。
    支持多道程序设计
    作用
    内存分配
    内存共享
    内存保护
    虚拟内存

    操作系统的功能三

    设备管理

    提供统一的设备资源使用接口,管理设备的分配和
    使用。
    设备无关性
    设备的传输控制
    设备的驱动

    操作系统的功能四

    文件管理:文件和目录的管理

    提供简便统一的信息存取和管理方法,并解决信息共享、数
    据的存取控制等问题。
     存储空间管理
     文件的操作
     目录的操作
     文件和目录的存取权限管理

    • 操作系统的评价指标
    1. 吞吐率
    2. 响应能力
    3. 资源利用率
    4. 可移植性
    5. 可靠性
    • 操作系统发展的四个典型阶段
      1.手工操作(无操作系统) 40年代到50年代早期
      2.单道批处理系统 50年代
      3.多道批处理系统 60年代初
      4.分时操作系统 60年代中

    • 多道程序设计技术
      在内存中存放多道程序,当某道程序因为某种原因
      (例如请求I/O时)不能继续运行时,监控程序便调
      度另一程序投入运行。这样可以使CPU尽量处于忙碌
      状态,提高系统效率。

    • 多道批处理系统
      采用多道程序设计技术实现的处理系统称为多道批
      处理系统。

    • 缺点

    1. 作业处理时间长
    2. 交互能力差
    3. 运行过程不确定
    • 60 年代硬件的两个重大进展
    1. 中断技术
    2. 通道技术
      专门处理外设与内存之间的数据传输的处理机。
    • 多终端计算机
      主机采用 分时技术轮流为每个终端服务,每个终端都感觉到
      是“独占”主机!

    • 分时系统的特点

    1. 多路调制性
    2. 独占性
    3. 交互性

    第一个实用化的分时操作系统 UNIX
    第一次把各种外部设备也看作文件

    • 多处理机系统
      特点
    1. 具有并行处理能力
    2. 紧耦合、存在瓶颈、可扩展性差
    3. 不支持大规模并行计算;不支持分布处理

    Linux kernel版本

    • x.y.zz-www
    • x.y指主版本号,zz指次版本号,www指发行号
    • 主版本号:偶数是稳定版本,奇数号是测试版本

    2+P50

    • 面对用户,裸机配置操作系统后称为 操作系统虚拟机
    1. 用户界面
    2. 屏蔽硬件细节
    3. 扩展硬件功能
    4. 系统更安全
    5. 系统更可靠
    6. 效率更高
    • 逻辑结构
      OS的设计和实现思路

    • 逻辑结构的种类
      1.单体式结构
      2.模块化结构
      3.可扩展内核结构(微内核结构)
      4.层次式结构

    • 单体式结构
      优点
      一个逻辑模块的函数可以直接访问另一个逻辑模块
      的数据结构,提高效率。
      缺点
      修改复杂

    • 模块化结构
      特点
      模块设计、编码和调试独立
      模块调用自由
      模块通信多以全局变量形式完成
      缺点
      信息传递随意,维护和更新困难。

    • 可扩展内核结构(微内核结构)
      客户 :应用程序
      服务器 :操作系统
      微内核
       足够小,提供OS 最基本的核心功能和服务
      ① 实现与硬件紧密相关的处理
      ② 实现一些较基本的功能;
      ③ 负责客户和服务器间的通信。
      核外服务器
       完成OS 的绝大部分功能,等待 客户 提出请求。
      由 若干服务器或进程共同构成
      例如:进程/线程服务器,虚存服务器,设备
      管理服务器等,以 进程 形式运行在用户态。

    • 层次式结构
      分层原则

    1. 硬件相关——最底层
    2. 外部特性——最外层
    3. 中间层——调用次序或消息传递顺序
    4. 共性服务——较低层
    5. 活跃功能——较低层

    层次结构的优点
    结构清晰,避免循环调用。
    整体问题局部化,系统的正确性容易保证。
    有利于操作系统的维护、扩充、移植。

    • 支持操作系统的最基本硬件结构
    1. CPU
    2. 内存
    3. 中断
    4. 时钟
    • 态的分类
    1. 核态(Kernel mode)
    2. 用户态 (User mode,目态)
    3. 管态(Supervisor mode)
      介于核态和用户态之间
      Ring 0:特权指令,OS内核或驱动程序
      Ring 1:管态
      Ring 3:应用程序

    合法的访问:RPL <= DPL
    请求特权级:RPL,Requested Privilege Level
    描述符特权级:DPL,Descriptor Privilege Level

    • 用户态向核态转换
    1. 用户请求OS提供服务
    2. 发生中断
    3. 用户进程产生错误(内部中断)
    4. 用户态企图执行特权指令
    • 核态向用户态转换的情形
      一般是中断返回:IRET

    • 引入中断的目的

    1. 实现并发活动
    2. 实现实时处理
    3. 故障自动处理
    • 中断类型
    1. 强迫中断和自愿中断
      强迫中断:程序没有预期:例:I/O、外部中断
      自愿中断:程序有预期。例:执行访管指令
    2. 外中断(中断)和内中断(俘获)
      外中断:由CPU外部事件引起。例:I/O,外部事情。
      内中断:由CPU内部事件引起。例:访管中断、程序中断
    3. 外中断:不可屏蔽中断和可屏蔽中断
      不可屏蔽中断:中断的原因很紧要,CPU必须响应
      可屏蔽中断:中断原因不很紧要,CPU可以不响应
    • 中断响应的实质
    1. 交换指令执行地址
    2. 交换CPU的态

    3+P110

    到处闲逛警谭乔,
    路遇违章把话聊。
    警光询问那里去?
    成华大道二仙桥!
    《听许巍到西12的日子》

    • 操作系统的生成
      满足特定硬件环境和用户需要,组装和构建操作系
      统过程。

    • 操作系统生成的主要步骤

    1. 根据硬件环境/用户要求配置功能模块和构造参数
    2.  构建(build )OS
    • 实模式(实地址模式,REAL MODE )
    1. 程序按照8086寻址方法访问0~FFFFFh(1MB)空间
    2. 寻址方式:物理地址(20位)=段地址:偏移地址。
    3. CPU单任务运行

    实模式 存取的1M 空间
    前面640K 【00000 -- 9FFFF】 :基本内存
    中间128K 【A0000 -- BFFFF】 :显卡显存
    末尾256K 【C0000 -- FFFFF】 : BIOS
    Fireware,固件
    C0000 -- C7FFF:显示卡BIOS
    C8000 -- CBFFF:IDE控制器BIOS
    F0000 -- FFFFF:系统BIOS 功能:

    1. CMOS设置
    2. 基本I/O设备中断服务
    3. POST(上电自检)
    4. 系统自举
      AH=02功能:读扇区
      ES:BX=缓冲区的地址
    • 保护模式(内存保护模式,PROTECT MODE )
    1. 寻址方式:段( 16位)和偏移量( 16位),寻址4GB
      段页式虚拟内存管理机制(段,页)
      段的属性:起始地址,存取属性,权限级别,…
      新增32位寄存器:GDR,LDR,CR0,CR1,CR2,…
    2. 虚拟地址,进程,封闭空间
    3. 应用程序和操作系统的运行环境都被保护
    4. CPU支持多任务
    • 按下PowerOn 或者Reset 键
      开始执行( FFFF0 )单元的指令
      JUMP POST ; POST:加电自检
      POST之后……
       查找显卡BIOS ,调用显卡 BIOS ;
      依次查找其它设备执行相应设备的BIOS ;
      根据用户指定顺序从硬盘或光驱等媒介启动OS 。
       OS 启动后,由OS 接管计算机

    OS启动过程
    从加电到用户工作环境准备好的过程

    1. 初始引导
    2. 核心初始化
    3. 系统初始化

    常见引导程序:
    (1)ntldr (WinXP以下)
    (2)bootmgr(Vista以上含Win7)
    (3)GRUB
    (4)LILO

    核心初始化
    目的:OS内核初始化系统的核心数据
    系统初始化
    为用户使用系统作准备,使系统处于待命状态

    最近抄别人代码好像有点过火了

    DOS 操作系统的构成
    io.sys: 提供DOS与BIOS的调用接口
    msdos.sys: 进程管理、存储管理、文件管理、解释系统调用
    command.com:Shell命令和键盘命令解释及执行

    MBR:Main Boot Record

    1. 和OS 启动相关的数据和代码
    2. 存放在主启动扇区(Main Boot Sector )
    3. 512 BYTES
    4. 结束:AA55h

    写启动相关的数据和代码(Boot Code)

    1. MBR扇区 (Master Boot Record Sector)
    2. PBR扇区( Partition Boot Record )
    3. 512字节
    • 用户界面的定义
      OS提供给用户控制计算机的机制,又称用户接口

    用户界面的类型

    1. 操作界面
    2. 系统调用 (System Call,系统功能调用,程序界面)

    Bash的主要功能

    1.  命令行编辑功能
    2.  命令和文件名补全功能
    3.  命令历史功能
    4.  命令别名功能
    5.  提供作业控制功能
    6.  具有将命令序列定义为功能键的功能
    7.  管道与重定向
    8.  Shell Script 脚本编程

    单曲:《野火一季》

    增加指令:自陷指令或系统调用指令

    系统调用的特点

    1. 一般涉及核心资源或硬件的操作
    2. 运行于核态。
    3. 每个系统调用具有唯一的编号:ID
    4. 调用过程会产生中断:自愿中断

    LINUX 系统调用的实质

    1. 系统调用是Linux内核的出口。 ?????
    2. 系统调用通过软中断(INT 80H)向内核发出服务请求
    3. 系统调用采用API方式向用户提供,遵循 POSIX标准

    4+P191

    女生一般不会主动
    除非她特别特别特别特别特别特别特别特别特别
    特别特别特别特别特别特别特别特别特别特别特别
    特别特别特别特别非常非常非常非常非常非常非常
    非常非常非常非常非常非常非常非常非常非常非常
    喜欢你

    描述和管理程序的“运行过程”——进程

    进程定义
    进程是程序在某个数据集合上的 一次运行 活动。
     数据集合:软/硬件环境,多个进程共存/共享的环境
    进程的特征

    1. 动态性
       进程是程序的一次执行过程,动态产生/消亡
    2. 并发性
       进程可以同其他进程一起向前推进;
    3. 异步性
       进程按各自速度向前推进
    4. 独立性
       进程是系统分配资源和调度CPU的单位;

    进程与程序的区别
    动态与静态
     进程是动态的:程序的一次执行过程
     程序是静态的:一组指令的有序集合
    暂存与长存
     进程是暂存的:在内存驻留
     程序是长存的:在介质上长期保存。
    程序和进程的对应
     一个程序可能有多个进程。

    Linux 进程分类 (按运行特点分)
    1)交互进程
    2)批处理进程
    3)守护进程( daemon进程)

    进程的状态
    1.运行状态(Running)
     进程已经占有CPU,在CPU上运行。
    2.就绪状态(Ready)
     具备运行条件但由于无CPU,暂时不能运行
    3.阻塞状态(Block)【等待(Wait)】
     因为等待某项服务完成或信号来到而不能运行的状态
     例如等待:系统调用,I/O操作,合作进程的服务或信号…

    就绪 运行:进程调度
    运行 就绪:时间片到;被抢占
    运行 阻塞:服务请求;等待信号
    阻塞 就绪:服务完成;信号来到

    挂起(suspend) 和 解挂(resume ,激活activate)

    1.  挂起:用户或OS将进程有意暂停; 解挂:将挂起的进程继续。
    2. 阻塞:活动阻塞(正常阻塞)和静止阻塞(阻塞时挂起) ;
    3. 就绪:活动就绪(正常就绪)和静止就绪(就绪时挂起) 。

    进程挂起
    typedef DWORD (WINAPI
    *NtSuspendProcess)(HANDLE ProcessHandle );
     进程继续
    typedef DWORD ( WINAPI
    *NtResumeProcess )( HANDLE hProcess ) ;

    Linux进程的状态

    1.  可运行态
      就绪运行:
    2.  阻塞(等待)态
      浅度阻塞:TASK_INTERRUPTIBLE(可中断)
      深度阻塞:TASK_UNINTERRUPTIBLE(不可中断)
    3.  僵死态:TASK_ZOMBIE
    4.  挂起态:TASK_STOPPED

    进程控制块 (Process Control Block , PCB)

    1. 描述进程的状态、资源、和相关进程的关系的一种数据结构。
    2.  PCB是进程的标志
    3.  创建进程时创建PCB;进程撤销后PCB同时撤销

    进程控制的概念
    在进程生存全期间,对其全部行为的控制
    四个典型的控制行为

    1. 创建进程
    2. 撤消进程
    3. 阻塞进程
    4. 唤醒进程

    原语
    由若干指令构成的具有特定功能的函数
    具有原子性,其操作不可分割
     进程控制原语

    1. 创建原语
    2. 撤消原语
    3. 阻塞原语
    4. 唤醒原语

    子进程由fork( )创建后,通常处于就绪状态

    exec函数族( 包括若干函数)
    功能
    装入一个指定的可执行程序运行
    使子进程具有和父进程完全不同的新功能。
    步骤

    1. 根据文件名找到相应的可执行文件。
    2. 可执行文件的内容填入子进程的地址空间
    3. exec调用成功就会进入新进程执行且不再返回。
    4. exec调用失败返回-1,继续在克隆来的地址空间中从调用点向下执行

    线程的概念( Thread )

    1. 线程比进程更小,是进程的一个执行路径。
    2. 创建一个线程比创建一个进程开销要小得多。
    3. 一个进程可以创建多个线程;
    4. 线程间通信十分方便
    5. 多个线程共享CPU可以实现并发运行
      线程的应用:如果把程序中某些函数创建为 线程 ,
      那么这些函数将可以 并发 运行!

    AfxBeginThread(线程函数,参数)
    CreateRemoteThread(进程,线程函数,参数)
    pthread_create(线程函数,参数)

    进程的 互斥 关系
    多个进程由于共享具有独占性的资源,必须协调各进程对资
    源的存取顺序:确保没有任何两个或以上的进程同时进行资
    源的存取操作

    临界区[ [Critical Section]
    进程中访问临界资源的程序段

    硬件方法

    1. 中断屏蔽
    2. 测试并设置
    3. 交换指令
      软件方法
    4. 锁
    5. 信号量

    进程的同步关系
     若干 合作进程 为了共同完成一个任务,需要相互协调
    运行步伐: 一个进程A A 开始 某个操作 之前必须要求 另一
    个进程B B 已经完成 某个操作 ,否则 进程A A 只能 等待

    进程的 同步 关系—— 另一种解释
    合作进程中某些操作之间需要满足某种先后关系或
    某个操作能否进行需要某个前提条件满足,否则只
    能等待。

    互斥关系属于特殊的同步关系。

    设计临界区访问机制的四个原则

    1. 忙则等待
    2. 空闲让进
    3. 有限等待
    4. 让权等待

    进程在运行过程 受 信号灯 控制 ,并能 改变 信号灯 。

    1.  进程受控制:进程因信号灯的状态被阻塞或被唤醒。
    2.  改变信号灯:信号灯的状态可以被进程改变。

    P ,V 是荷兰语:P asseren 通过 ,V rijgeven 释放

    信号量 ( Semaphore )

    1.  允许指定数目的多个线程/进程访问临界区。
    2.  一种资源计数器,用于限制并发线程的数量。
    3.  初值设为N,则表示允许N个进程/线程并发访问资源。

    事件( Event )
    用于通知一个或多个线程某事件出现或标识某操作已经完成。
    事件对象的分类
    1.自动重置的事件:使用WaitForSingleObject等待到事件对象
    变为有信号状态后该事件对象自动变为无信号状态。
    2.人工重置的事件:使用WaitForSingleObject等待到事件对象
    变为有信号状态后该事件对象的状态不变,除非人工重置事
    件。

    MOOC课程
    4.7.1 匿名管道通信
    4.7.2 Linux信号通信

    5+P22

  • 相关阅读:
    Vue 常用指令
    Vue起飞前的准备
    Django ORM 高性能查询优化
    Django 缓存、序列化、信号
    关于Django ModelForm渲染时间格式问题
    Django自定义分页并保存搜索条件
    Docker容器中用户权限管理
    Linux三种SSH协议登陆方式
    Docker部署Nextcloud私有网盘
    Zabbix官方部署搭建
  • 原文地址:https://www.cnblogs.com/CSE-kun/p/14146523.html
Copyright © 2020-2023  润新知