操作系统复习

操作系统一轮复习

一、操作系统概述

1、定义:操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石

2、基本特征

  • 并发:并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令
  • 共享:共享是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。
  • 虚拟:虚拟技术把一个物理实体转换为多个逻辑实体。
  • 异步:异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。

3、基本功能

  • 进程管理:进程控制、进程同步、进程通信、死锁处理、处理机调度等
  • 内存管理:内存分配、地址映射、内存保护与共享、虚拟内存等
  • 文件管理:文件存储空间的管理、目录管理、文件读写管理和保护等
  • 设备管理:缓冲管理、设备分配、设备处理、虛拟设备等

4、系统调用:如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。

二、进程管理

⭐进程与线程的区别

  • 进程是程序执行的基本单位,线程是程序执行的最小单位
  • 一个进程可以包含多个线程
  • 线程共享进程的资源,但也包含自己的内存结构(Java中线程有虚拟机栈、本地方法栈和程序计数器)

⭐进程的生命周期(5)

  • 创建——就绪——运行——阻塞——结束
  • 线程生命周期
    • (Java)创建——就绪——运行——等待——等待超时——阻塞——结束
    • 注:进程和线程生命周期应该差不多,不同编程语言对线程的生命周期有所变动,例如java将就绪和运行合并,并且将阻塞扩充为3中:等待、等待超时、阻塞;同理,不同操作系统也对进程的生命周期有不同的描述,但整体流程差不多

⭐进程间的通信(7)

  • 管道/匿名管道:父子/兄弟进程间的通信
  • 有名管道:按照先进先出(first in first out),实现本机任意两个进程通信
  • 信号:进程间唯一的异步通信机制
  • 消息队列:保存在内核中的消息链表,缺点:通信不及时,附件也有大小限制
  • 信号量:整型计数器,实现进程间的互斥和同步
  • 共享内存:使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。这种方式需要依靠某种同步操作,如互斥锁和信号量等。可以说这是最有用的进程间通信方式。
  • 套接字:用于进程间的网络通信

进程间的同步

  • 同步方式

    • 临界区、互斥量(互斥)、信号量(同步)、管程
    • 线程间同步
      • 互斥量、信号量、事件
  • 同步问题

    • 生产者消费者问题

      • 生产者和消费者同步关系使用信号量,临界资源使用互斥量

      • semaphore mutex=1;
        semaphore full=0;         //满缓冲区单元
        semaphore empty=N;    //空闲缓冲区单元
        prodecer()
        {
            while(1)
            {
                  P(empty);  // 减小信号量        
                  P(mutex);
                  add_source++;
                  V(mutex); // 增加信号量
                  V(full);      
            }    
        }        
        consumer()
        {
            while(1)
           {
                 P(full);
                 P(mutex);
                 add_source--;
                 V(mutex);
                 V(empty);     
            }    
        }
        
    • 读者写者问题

      • 读者与写者是互斥关系,写者与写者是互斥关系,读者与读者是同步关系

      • //读写公平(读写互斥,写写互斥,读读信号量)
        int count=0;
        semaphore mutex=1;    //读者计数锁
        semaphore rw=1;        //资源访问锁
        semaphore w=1;        //读写公平抢占锁
        writer()
        {
            while(1)
            {
                P(w);
                P(rw);
                writing sth;
                V(rw);
                V(w);
            }
        }
        
        reader()
        {
            while(1)
            {
                P(w);
                P(mutex);
                if(count==0)
                    P(rw);
                count++;
                V(mutex);
                V(w);
                reading sth;
                P(mutex);
                count--;
                if(count==0)
                    V(rw);
                V(mutex);
            }
        }
        
    • 哲学家进餐问题

      • 一张圆桌上坐着五名哲学家,每两名哲学家之间的桌子摆一根筷子,哲学家只有同时拿起左右两根筷子时才可以用餐,用餐完了筷子放回原处
      • 筷子是互斥量,先拿左边的,再拿右边的,拿不到就释放左边的

⭐死锁

  • 死锁的条件
    • 互斥、请求与保持、不剥夺、循环等待
  • 死锁的处理方法
    • 预防
      • 一次性分配(请求保持)
      • 主动释放(不剥夺)
      • 顺序申请,反序释放(循环等待)
    • 避免:银行家算法
      • 当一个进程申请使用资源的时候,银行家算法 通过先 试探 分配给该进程资源,然后通过 安全性算法 判断分配后系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待,若能够进入到安全的状态,则就 真的分配资源给该进程
      • 这里写图片描述
    • 检测:进程-资源分配图(拓扑排序)
    • 解除

进程调度

  • 先来先服务(FIFO)
  • 短作业优先(SJF)
  • 时间片轮转
  • 优先级调度
  • 多级反馈队列

三、内存管理

内存管理方式

  • 块式:远古时代的计算机操作系统的内存管理方式
  • 段式: 页式管理虽然提高了内存利用率,但是页式管理其中的页并无任何实际意义。 段式管理把主存分为一段段的,段是有实际意义的,每个段定义了一组逻辑信息,例如,有主程序段 MAIN、子程序段 X、数据段 D 及栈段 S 等。 段式管理通过段表对应逻辑地址和物理地址。
  • 页式:把主存分为大小相等且固定的一页一页的形式,页较小,相比于块式管理的划分粒度更小,提高了内存利用率,减少了碎片。页式管理通过页表对应逻辑地址和物理地址。
  • 段页式:段页式管理机制就是把主存先分成若干段,每个段又分成若干页,也就是说 段页式管理机制 中段与段之间以及段的内部的都是离散的

虚拟内存

  • 定义
    • 虚拟内存通过定义一个连续的虚拟地址空间,将内存扩展到硬盘
    • 为进程提供了一个连续完整的内存空间,让进程有一种独享的错觉
    • 缺的页通过页面置换算法调度
  • 页面置换算法
    • 最佳页面置换算法(OPT):淘汰的页面将再不使用或者长时间不使用,该算法无法实现一般作为衡量其他置换算法的方法
    • 先进先出(FIFO)
    • 最近最久未使用(LRU)
    • 最少使用(LFU)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值