操作系统

进程线程

Linux进程间通讯方式及编程知识

  • 见文档linux-ipc.pdf及相应demo程序

进程线程异同点

Linux多线程pthread编程知识

进程线程面试题总结

多个进程同时写共享内存,如何防止内容乱?

多线程访问共享内存的不加锁实现方式


IO/磁盘/内存

同步和异步、阻塞与非阻塞

共享内存两种机制

  • 共享内存可以通过 mmap()映射普通文件(特殊情况下还可以采用匿名映射)机制实现, 也可以通过 System V 共享内存机制实现。
  • mmap 的机制:在磁盘上建立一个文件,每个进程存储器里面,单独开辟一个空间来进行映射。mmap 保存到实际硬盘。优点:储存量可以很大(多于主存);缺点:进程间读 取和写入速度要比主存的要慢。
  • shm 的机制:每个进程的共享内存都直接映射到实际物理存储器里面。shm 保存到物理存储器(主存),实际的储存量直接反映到主存上。优点,进程间访问速度(读写)比磁 盘要快;缺点,储存量不能非常大(多于主存) 。
  • 使用上看:如果分配的存储量不大,那么使用 shm;如果存储量大,那么使用 mmap。

使用mmap读写文件为什么比普通读写函数要快?

Linux共享内存实现及具体步骤

Linux的磁盘管理

Linux中查看进程、网络、磁盘IO的相关命令


调度及死锁

产生死锁的条件

  • 互斥条件(Mutualexclusion):资源不能被共享,只能由一个进程使用。
  • 请求与保持条件(Hold andwait):已经得到资源的进程可以再次申请新的资源。
  • 非剥夺条件(Nopre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
  • 循环等待条件( Circularwait ):系统中若干进程组成环路,该环路中每个进程都在等待相 邻进程正占用的资源。

预防、避免死锁的方法