操作系统是一门实用性和实践性很强的课程,如果只是单纯地介绍抽象的原理和概念,难以有理想的教学效果,例如一个连多线程程序都没写过的学生,很难对线程有真正的了解。Java语言可作为理论与实践间的桥梁,利用其API可直观的演示多线程、CPU调度、线程同步、死锁、内存和文件管理、安全和分布式系统等理论概念(如表1)。
表1 与操作系统概念相对应的JavaAPI
操作系统概念 | Java API |
进程 | Process, ProcessBuilder |
线程 | Thread, Runnable |
线程池 | Executors, ExecutorService |
线程同步 | synchronized关键字, Lock的lock(), unlock()方法 |
线程协作 | Object的wait(), notify(), notifyAll()方法 |
条件变量 | Condition的await(), signal(), signalAll()方法 |
管程 | BlockingQueue |
信号量 | Semaphore |
优先级 | Thread的MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY |
内存映射文件 | MappedByteBuffer |
文件锁 | FileLock |
流 | InputStream, OutputStream |
RPC | Remote Method Invocation (RMI) |