面试题之计操

一.内存管理

二.进程管理

1.进程与线程

  • 概念:
    进程:运行中的程序
    线程是进程中的一条执行流程
  • 内存结构
    • 进程:PCB
      PCB是进程存在的唯一标识,每个PCB通过链表的方式进行组织,将具有相同状态的进程链在一起,组成各种队列(就绪队列和阻塞队列)
    • 线程:TCB
  • 比较
    • 进程是资源分配单位,线程是CPU调度单位
    • 进程拥有一个完整的资源平台,线程只独享必不可少的资源,比如栈和寄存器
    • 当进程中的一个崩溃,整个进程全部崩溃
    • 线程能减少并发执行的时间和空间开销
      • 线程创建比进程要更快。因为进程需要资源管理,线程则是共享他们
      • 线程的终止时间相比进程快。因为释放的资源少
      • 线程具有相同的地址空间。因为同一个进程里的线程有同一个页表,切换的时候不用切换页表,而进程之间的切换是需要切换页表的
      • 因为同一个进程里的线程共享内存和文件资源,所以在线程之间数据传递不需要经过内核,效率高

2.进程间的通信

  • 管道
    只能单向流动,只能承载无格式的字节流

    • 匿名管道
      只能在父子进程关系中用
    • 命名管道
      可以在不关联的两个进程之间用。因为他创建了一个类型为管道的设备文件,使用这个设备文件就可以通信。
  • 信号
    信号是进程之间唯一的异步通信机制,信号的主要来源主要有硬件来源(入键盘操作ctrl + C) 和软件来源(如kill命令),信号传递的信息比较少,主要用于通知进程某个时间已经发生。比如利用kill pid,可以让系统优雅停机。

  • 信号量
    信号量是一个计数器,可以用来控制多个进程对资源的访问,通常作为一种锁机制,防止某个进程正在访问共享资源,其他进程也访问资源

  • 消息队列
    消息队列克服了信号传递信息少、管道只能承载无格式的字节流,消息到了就放进去,需要的时候去取。与命名管道相比:消息队列的优势在于,它独立于发送和接收线程,消除了在同步命名管道的打开和关闭时可能产生的一些困难。

  • 共享内存
    共享内存就是映射一段能被进程之间共享的内存,这段内存由一个进程创建,但是多个进程都可以共享访问,是最快的一种进程间通信的方式(不需要从用户态到内核态的切换),它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。

  • socket
    socket套接字,不仅仅可以用于本地进程通信,还可以用于不通主机进程之间的通信。

三.文件系统管理

四.输入输出设备管理