计算机基础——操作系统篇概览

操作系统

1.os基础

  1. 操作系统基本概念:运行在计算机上的一种程序,管理计算机上的软件和硬件资源,包括进程,内存管理,硬件设备管理等(内核负责)。
  2. 系统调用:运行在用户态的程序需要调用系统态下的资源,包括设备、文件、内存等。

2. 进程管理

  1. 进程和线程的概念、区别

    • 进程是指的程序的执行过程,是资源分配的基本单位。进程占用内存多,切换复杂,进程间相互独立不会互相影响
    • 线程是进程中执行运算的基本单位,一个进程中包含多个线程。线程相对于进程则恰好相反,占用内存小,且线程切换代价较小,线程间共用地址空间(堆)可能会相互影响。
  2. 进程的状态:5种分别是——创建、就绪、运行、阻塞、结束。如图:

    计算机基础——操作系统篇概览_第1张图片

  3. 进程间的通信方式

    1. 管道:分为匿名和命名管道;都以先进先出的方式通信??好像

      • 匿名管道只能用于父子进程或兄弟进程间的通信,且存在与内存中。

      • 命名管道可以是任意两个进程间进行通信,以磁盘文件的方式存在。

    2. 信号

      • signal();用于通知接收进程某个事件已经发生
    3. 消息队列

      • 消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取.比 FIFO 更有优势。消息队列克服了信号承载信息量少,管道只能承载无格式字 节流以及缓冲区大小受限等缺点。
    4. 信号量

      是一个计数器,用于多进程共享数据的进程同步问题。

    5. 共享内存

      • 多个进程共享内存空间,可以直接查看其它进程的数据(但是依赖于同步操作实现)
    6. 套接字

      用于客户端和服务器端的通信,支持TCP/IP的网络通信的基本操作单元。

  4. 进程间的同步方式

    1. 互斥量,互斥对象只有一个,保证资源一定不会被多个进程同时访问(synchronized和各种lock)
    2. 信号量,允许多个进程访问同一资源,但是需要设置最大访问数量
    3. 事件
  5. 进程调度算法

    时间片轮转算法,先到先服务,短作业优先,优先级调度,多级反馈队列调度。

  6. 死锁

    • 产生原因:系统资源不足;进程推进顺序不当;资源分配不当
    • 必要条件:互斥;不可剥夺;请求和保持;循环等待死锁的四个必要条件
    • 预防:破坏死锁的必要条件

3. 内存管理

  1. 内存管理主要在干啥

    • 负责内存分配(malloc)与回收(free),地址转换。
  2. 内存管理机制

    • 分为连续分配和非连续分配
    1. 分块:连续的,碎片多
    2. 分页:离散的,将主存分页,使用页表对应逻辑地址和物理地址
    3. 分段:离散的,将主存分段,使用段表来对应逻辑地址和物理地址,(段有实际意义)
    4. 段页式:离散的,先将主存分段,再将段分页
  3. 快表和多级页表

    • 快表:解决了逻辑地址到物理地址的转换速度,可以理解成是一种特殊的缓冲存储器,存放一部分经常访问的页表。
    • 多级页表:为了解决有时候页表太大的问题,使用多级页表,在顶级页表中存放索引,将二级页表放在磁盘中。
  4. 分页机制和分段机制的共同点和区别

    • 同:都是为了提高内存利用率,减少内存碎片;都是离散分配
    • 异:页大小固定,由操作系统决定,段大小不确定,取决于当前运行程序;段是逻辑单位,有实际意义,比如代码段,数据段等,页没有实际意义。
  5. 逻辑地址、物理地址、CPU寻址

    • 逻辑地址:也就是虚拟地址,由操作系统决定
    • 物理地址:真实的物理内存中的地址
    • CPU寻址:将虚拟地址翻译成物理地址,访问真实物理内存
  6. 为什么需要虚拟地址呢?

    计算机基础——操作系统篇概览_第2张图片

4. 虚拟内存

  1. 什么叫虚拟内存?

    定义了一个连续虚拟地址空间,并将内存过渡到硬盘空间

  2. 局部性原理

    • 概念/重要性:局部性原理是虚拟内存技术的基础,正是因为局部性原理,才可以只装入程序的一部分到内存就开始运行

    • 原理表现:

      • 时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因,是由于在程序中存在着大量的循环操作。
      • 空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。
  3. 实现方法:请求分页;请求分段;请求段页式——(都会导致缺页中断)

  4. 页面置换算法:

    • OPT最佳页面置换算法:在以后最长时间不使用的页面换出。
    • 先进先出:先进入内存的先换出,就是在内存里待得最久的先换出。
    • 最近最久未使用:越久没用的越先换出。
    • 最少使用:使用次数最少的换出。

你可能感兴趣的:(计算机基础,linux)