- 程序和进程
程序中包含了一系列信息,这些信息用来指导操作系统如何在运行时创建一个进程。 进程是正在运行的程序的实例。进程是操作系统最基本的资源分配单元,也是基本的执行单元。 - 单道程序设计和多道程序设计
单道程序设计即计算机内存中只允许一道程序运行。 多道程序设计是指计算机内存中同时存放多道相互独立的程序。这些程序在管理程序控制下,穿插运行。
操作系统中引入多道程序的目的在于,使多个程序能并发执行,提高资源利用率和系统吞吐量,避免单道程序因为资源独占,导致系统资源利用率低下的弊端。
对于单个CPU来说,程序在CPU上轮流运行。 3. 时间片 指操作系统给多道正在运行的程序,即进程的分配的一段CPU运行时间。时间片由操作系统的内核调度分配给进程。 4. 并行和并发 并行指多CPU情况。多个CPU同时处理多条指令,在同一时间。 并发指单CPU情况。单CPU分时间片处理多条指令,在同一时间单CPU只处理一条指令。 5. 进程控制块PCB(Processing Control Block) PCB中存有进程信息表,用于维护进程相关信息。Linux内核的控制块为task_struct结构体。 strucct task_struct中包括:进程ID、进程状态、进程切换时需要保存和回复的CPU寄存器、描述虚拟地址空间的信息?、描述控制终端的信息?、当前工作目录、umask掩码、文件描述符表(包含指向file结构体的指针)、和信号相关的信息、用户ID和组ID、会话和进程组。
1.进程状态 进程状态包括就绪、运行、阻塞。就绪态指程序获得了相应的资源,正在等待CPU的运行权。运行指程序正在CPU中运行。阻塞又分为wait(等待)和sleep(睡眠)态,表示进程正在等待一定的事件进行完成,已获得运行条件。 接下来讨论三种状态之间的相互转换,当就绪态获得时间片时,就绪态转为运行态,当运行态用完时间片后,恢复到就绪态。当进程运行时,由某个事件的发生可以引起阻塞态,而事件完成后,进入就绪态,等待时间片而进行下次运行。 除此之外,进程的状态还有创建态和终止态。进入到终止态的程序不能再次运行,因为终止态的进程用户区的数据已经释放,内核态的还没有。创建态指程序刚刚完成创建,正在等待调度。 每个进程由进程号来标识,类型为pid_t(整型)(整型包括正常型、短整型、长整型、无符号型)一般PID_MAX=0x8000,所以进程号最大值为32767(0x7fff)
|