一、操作系统的作用(承上启下)
- 管理硬件:内存、硬盘、CPU
- 管理应用:进程
二、简单结构
多数操作系统分为两层:
kernel(内核):管理硬件,包括CPU调度、文件系统、应用管理进程调度、内存管理、中断处理设备驱动
- 宏内核:相关程序全放一起,装一块内存里
- 微内核:只有一个最核心的kernel,只干一件事:进程调度
用户态和内核态
- CPU分不同的指令级别;
- linux内核跑在ring 0级, 用户程序跑在ring 3 对于系统的关键访问,需要经过kernel的同意,保证系统健壮性
- 内核执行的操作 - > 200多个系统调用 sendfile read write pthread fork
- 在os面前,jvm就是一个普通程序
同步、异步
同步和异步的区别:就在于是否等待IO执行的结果
并行和并发有什么区别:
- 并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑 上来看那些任务是同时执行。
- 并行:单位时间内,多个处理器或多核处理器同时处理多个任务,是真正意义上 的“同时进行”。
- 串行:有n个任务,由一个线程按顺序执行。由于任务、方法都在一个线程执行 所以不存在线程不安全情况,也就不存在临界区的问题。
做一个形象的比喻:
并发 = 两个队列和一台咖啡机。
并行 = 两个队列和两台咖啡机。
串行 = 一个队列和一台咖啡机。
真正的并行执行多任务只能在多核CPU上实现