zoukankan      html  css  js  c++  java
  • 操作系统笔记

    操作系统  
    - 系统资源的管理者 
        - 提供的功能
            - 处理机管理
            - 存储器管理
            - 文件管理
            - 设备管理
        - 目标:安全、高效 
    - 作为用户和计算机硬件之间的接口  
        - 提供的功能  
            - 命令接口
                - 联机命令接口
                - 脱机命令接口
            - 程序接口  
            - GUI(图形用户界面)
        - 目标:方便用户使用  

    操作系统的特征  
    - 并发
    - 共享
    - 虚拟
    - 异步

    并发  
    并发:指两个或多个事件在同一时间间隔发生。这些事件宏观上是同时发生的,但微观上是交替发生的。  
    并行:指两个或多个事件在同一时刻同时发生。  

    操作系统的并发性指计算机系统中同时存在着多个运行的程序。  

    共享  
    共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。  
    两种资源共享方式
    - 互斥共享方式:一段时间内只允许一个进程访问资源。  
    - 同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问。  

    虚拟  
    是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。  
    虚拟技术:
    - 空分复用技术  
    - 时分复用技术  

    异步  

    计算机系统的层次结构  
     

    中断  
    1、当中断发生时,CPU立即进入核心态  
    2、当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理  
    3、对于不同的中断信号,会进行不同的处理  

    中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。(唯一途径)  

    核心态->用户态的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。  

    系统调用  
    - 设备管理
    - 文件管理
    - 进程控制
    - 进程通信
    - 内存管理  

    进程  
    进程实体(静态的):程序段、数据段、PCB  
    进程(动态的):是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。  

    PCB:进程控制块  
    用来描述进程的各种信息(如程序代码存放位置),系统为每个运行的程序配置一个数据结构。

     

     进程的特征  
    - 动态性
    - 并发性
    - 独立性
    - 异步性
    - 结构性
     


    创建原语  
    1、申请空白PCB   
    2、为新进程分配所需资源  
    3、初始化PCB  
    4、将PCB插入就绪队列  

    进程通信
    - 共享存储
    - 消息传递
    - 管道通信  

    线程  
    线程是一个基本的CPU执行单元,也是程序执行流的最小单位。线程是调度的基本单位。  
    引入线程后,进程只能作为除CPU之外的系统资源的分配单元。  

    线程是处理机调度的单位
    进程是资源分配的单位

    死锁  
    - 定义  
    在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象。  
    - 产生的必要条件  
        - 互斥条件  
        对必须互斥使用的资源的争抢(如哲学家的筷子、打印机设备)。
        - 不剥夺条件  
        不由其他进程强行夺走,只能主动释放。
        - 请求和保持条件  
        进程已经保持了一个资源,去请求新的资源,对自己的资源保持不放。  
        - 循环等待条件  
        进程资源的循环等待链。

    预防死锁  
    破坏互斥条件、破坏不剥夺条件、破坏请求和保持条件、破坏循环等待条件。  
    1、把只能互斥使用的资源改造为允许共享使用。例如用SPOOLing技术将打印机改造为共享设备。  
    2、方案1 进程得不到满足时,主动释放  
    方案2 操作系统协调,强行剥夺  
    3、静态分配方法,即进程在运行前一次申请完它所需要的全部资源  
    4、顺序资源分配法,给系统资源编号,按编号递增顺序申请,相同编号的一次申请完。  

     避免死锁  
    银行家算法:在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源分配请求。  

    死锁的检测和解除:  
    资源分配图:依次消除与不阻塞进程相连的边,直到无边可消。  

    解除死锁的方法:  
    - 资源剥夺法  
    - 撤销进程法
    - 进程回退法

    如何决定“对谁动手”:
    - 进程优先级
    - 已执行时间
    - 还要多久才完成
    - 进程已经使用了多少资源
    - 进程是交互式还是批处理式的
  • 相关阅读:
    一个小型公司怎么落地微服务
    【操作系统笔记】 02.进程的描述与控制
    shell脚本 PHP+swoole的安装
    Mac sourceTree每次都输入密码
    kafka的安装
    leetcode-剑指56-I-II-OK
    leetcode-剑指13-OK
    leetcode-剑指66-OK
    leetcode-剑指31-OK
    leetcode-剑指26-OK
  • 原文地址:https://www.cnblogs.com/amberwang2018/p/13883378.html
Copyright © 2011-2022 走看看