内核
我们可以将操作系统定义为一种软件,它控制计算机的硬件资源,提供程序的运行环境,通常将这种软件叫做内核
系统调用
内核的接口被称为系统调用
操作系统包括内核和一些其他软件(系统实用程序,应用程序,shell,及公共函数库等)
输入和输出
- 文件描述符: 通常是一个小的非负整数,内核用以标识一个进程正在访问的文件。
- 标准输入,标准输出,标准错误(standard input, standard output, standard error)
- 不带缓冲的I/O(open, read, write, lseek,close)
不带缓冲即为 每个read或write都调用内核中的一个系统调用
程序和进程
- 程序: 是一个存储在磁盘上某个目录的可执行文件,内核实用exec函数将程序读入内存,并执行程序
- 进程和进程ID:程序的执行实例被称为进程,每一个进程都有一个唯一的数字标识符,称为进程ID(总是一个非负数)
- 进程控制(fork, exec,waitpid)
- 线程和线程ID:一个进程内的所有线程共享同一地址空间,文件描述符,栈以及与进程相关的属性,因为它们能访问同一存储区,所以各线程在访问共享数据时需要采取同步措施以避免不一致性。
线程ID只在它所属的进程内起作用 - 信号:用于通知进程发生了某种情况,包括三种处理方式
(1)忽略信号
(2)按系统默认方式处理(终止该进程)
(3)提供一个函数,在信号发生时调用