第三章 操作系统
需要针对系统行为的开发和测试,如系统调用是如何执行的、CPU是如何调度线程的、有限大小的内存是如何影响性能的,或者是文件系统是如何处理I/O的,等等。
3.1术语
- 操作系统:这里指安装在系统上的软件和文件,使得系统可以启动和运行程序。操作系统包括内核、管理工具,以及系统库
- 内核:内核是管理系统的程序,包括设备(硬件)、内存和CPU调度。它运行在CPU的特权模式,允许直接访问硬件,称为内核态
- 进程:是一个OS的抽象概念,是用来执行程序的环境。程序通常运行在用户模式,通过系统调用或自陷来进入内核模式(例如,执行设备I/O)。
- 线程:可被调度的运行在CPU上的可执行上下文。内核有多个线程,一个线程有一个或多个线程。
- 任务:一个Linux的可运行实体,可以指一个进程(含有单个线程),或一个多线程的进程里的一个线程,或者内核线程
- 内核空间:内核的空间地址空间
- 进程空间:进程的内存地址空间
- 用户空间:用户级别的程序和库
- 上下文切换:内核程序切换CPU让其在不同的地址空间上做操作(上下文)
- 系统调用:一套定义明确的协议,为用户程序请求内核执行特权操作,包括设备I/O。
- 处理器:不要与进程混淆,处理器是包好有一颗或多颗CPU的物理芯片
- 自陷:信号发送到内核,请求执行