计算机基础 -- 操作系统

101 阅读4分钟
  • 进程和线程的区别

    • 线程是进程划分澄更小的运行单位,一个进程在其执行的过程中可以产生多个线程。线程和进程最大的不同在于基本上各进程是独立的,而各线程则不一定,因为同一进程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护,而进程正相反。
  • 进程进的通信方式

    • 管道/匿名管道
      • 用于具有亲缘关系的父子进程间或者兄弟进程间的通信
    • 有名管道
      • 没有亲缘关系的也可以通信
      • 先进先出
      • 有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信
    • 信号 signal
      • 信号是一种比较复杂的通信方式,可以通知接收进程某个事件已经发生
    • 消息队列 message queue
      • 消息队列是消息的链表,具有特定的格式,存放在内存中并由消息队列标识符标识
    • 信号量 semaphores
      • 信号量是一个计数器,用于多进程对共享数据的访问,信号量的意图在于进程间同步。这种通信方式主要用于解决与同步相关的问题并避免竞争条件
    • 共享内存
    • 套接字 socket
  • 进程间同步的方式

    • 互斥量 mutex
    • 信号量 semphares
    • 事件 event
      • wait/notify
  • 进程的调度算法

    • 先到先服务
    • 短作业优先
    • 时间片轮转 Round Robin
    • 多级反馈队列调度算法
    • 优先级调度
  • 操作系统内存管理

    • 内存的分配和回收
    • 内存管理机制
      • 块式管理
        • 远古时代的计算机操系统的内存管理方式。将内存分为几个固定大小的块,每个块 中只包含一个进程。如果程序运行需要内存的话,操作系统就分配给它一块,如果程序运行只需 要很小的空间的话,分配的这块内存很大一部分几乎被浪费了。这些在每个块中未被利用的空 间,我们称之为碎片。
      • 页式管理
        • 把主存分为大小相等切固定的一页一页的形式,页较小,相对相比于块式管理的划分力度更大,提高了内存利用率,减少了碎片。⻚式管理通过⻚表对应逻辑地址和物理地址。
      • 段式管理
        • ⻚式管理虽然提高了内存利用率,但是⻚式管理其中的⻚实际并无任何实际意义。 段式管理把主存分为一段段的,每一段的空间又要比一⻚的空间小很多 。但是,最重要的是段 是有实际意义的,每个段定义了一组逻辑信息,例如,有主程序段 MAIN、子程序段 X、数据段 D 及栈段 S 等。 段式管理通过段表对应逻辑地址和物理地址。
      • 段页式管理
        • 简单来说段⻚式管理机制就是把主存先分成若干段,每个段又分成若干⻚, 也就是说 段⻚式管理机制 中段与段之间以及段的内部的都是离散的。
    • 快表和多级页表
      • 快表:虚拟地址到物理地址的转换要快
      • 多级页表:解决虚拟地址空间大,页表也会很大的问题
      • 地址转换流程:
        • 根据虚拟地址中的⻚号查快表
        • 如果该⻚在快表中,直接从快表中读取相应的物理地址
        • 如果该⻚不在快表中,就访问内存中的⻚表,再从⻚表中得到物理地址,同时将⻚表中的该映射表项添加到快表中
        • 当快表填满后,又要登记新⻚时,就按照一定的淘汰策略淘汰掉快表中的一个⻚
      • 分页机制和分段机制有哪些共同点和区别
        • 共同点
          • 都是为了提高内存利用率,较少内存碎片
          • 页和段都是离散存储,所以两者都是离散分配内存的方式。但是,每个页和段中的内存是连续的
        • 区别
          • 页的大小是固定的,由操作系统决定的;而段的大小不固定,取决于我们当前运行的程序
          • 分页仅仅是为了满足操作系统内存管理的需求,而段是逻辑信息的单位,在程序中可以体现为代码段,数据段,能够更好满足用户的需要
    • 页面置换算法
      • OPT页面置换算法:最佳页面置换算法--是无法实现的
      • FIFO 先进先出
      • LRU (least currently used)
      • LFU (least frequently used)