教材第三章知识点总结
Unix/Linux进程管理:
-
多任务处理:
- 多任务处理是指操作系统同时运行多个进程或线程的能力。
- 操作系统通过时间片轮转或优先级调度等算法来实现多任务处理。
- 多任务处理可以提高系统的资源利用率和响应速度。
-
进程的概念理解:
- 进程是程序的执行实例,是操作系统进行资源分配和调度的基本单位。
- 进程由程序代码、数据和执行状态等组成。
- 每个进程都有一个唯一的进程标识符(PID)。
- 进程可以通过系统调用创建、销毁和管理。
-
多任务处理系统:
- 多任务处理系统是一种能够同时运行多个任务的操作系统。
- type.h文件定义了进程控制块(PCB)的数据结构。
- ts.s文件包含了多任务处理系统的汇编代码。
- queue.c文件实现了进程的队列操作。
- t.c文件是多任务处理系统的主程序,包含了进程的创建、调度和管理等功能。
-
进程同步:
- 进程同步是指多个进程之间按照一定的顺序执行,以避免竞争条件和数据不一致问题。
- 睡眠模式是一种进程等待的机制,使得进程在满足某个条件之前暂停执行。
- 唤醒操作是将一个或多个等待的进程从睡眠状态唤醒,使其继续执行。
-
进程终止:
- kexit()是进程终止的算法,用于将进程从系统中移除。
- 进程家族树是以INIT进程为根的进程树形结构,用于表示进程之间的关系。
- 等待子进程终止是通过wait()或waitpid()系统调用来实现的,父进程会阻塞直到子进程终止。
-
MT系统中的进程管理:
- MT系统中的进程管理包括进程的创建、调度、终止和资源管理等。
- 进程的创建使用fork()系统调用来创建一个与当前进程相同的子进程。
- 进程的调度由操作系统的调度算法决定,可以通过设置进程的优先级来影响调度顺序。
- 进程的终止可以通过exit()系统调用显式终止,或者当进程执行完毕时自动终止。
- 进程的资源管理包括对内存、文件和设备等资源的分配和释放。
-
Unix/Linux中的进程:
- 进程来源可以是用户通过Shell命令启动,或者由其他进程创建。
- INIT进程是Unix/Linux系统中的第一个进程,是所有进程的祖先。
- 守护进程是在后台运行的进程,通常用于执行系统任务。
- 登录进程是用户登录系统时启动的进程,通常是getty或sshd。
- sh进程是Shell进程,用于解释和执行用户输入的命令。
- 进程的执行模式可以是顺序执行、并发执行或并行执行。
-
进程管理的系统调用:
- fork()系统调用用于创建一个与当前进程完全相同的子进程。
- 进程执行顺序由操作系统的调度算法决定。
- 进程终止可以通过exit()系统调用显式终止,或者当进程执行完毕时自动终止。
- 等待子进程终止可以使用wait()或waitpid()系统调用。
- Linux中的subreaper进程是一种特殊的进程,可以接管孤儿进程的终止处理。
- exec()系统调用可以更改进程的执行映像,即加载并执行新的程序。
- 环境变量是进程运行时可用的全局变量,可以通过getenv()和setenv()等系统调用进行操作。
-
I/O重定向:
- 文件流是对文件描述符的高级封装,提供更方便的I/O操作接口。
- 文件流I/O是通过标准库函数如fopen()、fread()等进行文件读写。
- 重定向标准输入是将标准输入从键盘改为从文件中读取。
- 重定向标准输出是将标准输出从屏幕改为输出到文件中。
-
管道:
- Unix/Linux中的管道是一种进程间通信机制,用于在两个进程之间传递数据。
- 管道命令处理是指使用管道连接多个命令,将一个命令的输出作为另一个命令的输入。
- 将管道写进程与管道读进程连接起来可以实现进程间的数据传输。
- 命名管道是一种特殊的文件,用于实现不相关进程间的通信。
苏格拉底挑战
实践