操作系统基础

操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。

进程管理

进程与线程

进程调度

进程通信

进程间通信(IPC)的主要方式:

  • 管道(Pipe):用于父子进程间通信
  • 消息队列:进程间传递格式化数据
  • 共享内存:多个进程共享同一块内存空间
  • 信号量:用于进程同步和互斥
  • Socket:网络通信的基础

Java中的进程通信主要通过Socket或者借助中间件实现。

内存管理

内存管理基础

虚拟内存

页面置换算法

常见的页面置换算法:

  • 最佳置换算法(OPT):理论最优,实际无法实现
  • 最近最少使用(LRU):置换最长时间未使用的页面
  • 先进先出(FIFO):置换最早进入内存的页面

JVM的垃圾回收算法在设计时也参考了这些经典算法。

文件系统

文件管理

Java的File类和NIO包提供了对文件系统的访问接口。

磁盘调度

常见的磁盘调度算法:

  • 先来先服务(FCFS):按请求顺序访问磁盘
  • 最短寻道时间优先(SSTF):优先访问最近的磁道
  • 扫描算法(SCAN):电梯算法,双向扫描磁道

I/O管理

I/O控制方式

设备管理

操作系统对设备管理的主要任务:

  • 设备的分配与回收
  • 设备驱动程序管理
  • 设备独立性保证

Linux系统基础

系统调用

文件权限

Linux文件权限的基本概念:

  • 读(r)、写(w)、执行(x)权限
  • 用户(u)、组(g)、其他(o)的权限分配
  • 权限的数字表示方式