第三章读书笔记

第三章读书笔记

进程管理——进程概述

进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

进程创建:利用封装函数fork(),利用wait()回收,exit推出。

进程描述符:task_struct结构   (pcb)

定义:为了管理进程,操作系统必须对每个进程所做的事情进行清楚地描述,为此,操作系统使用数据结构来代表处理不同的实体,这个数据结构就是通常所说的进程描述符或进程控制块,在linux系统中,它包含了这个进程的所有信息,在任何时候操作系统都能跟踪这个结构的信息

cpu任务对应结构为:分配进程pcb--存放空间--记录当前数据与状态--记录上下文---索引所有子父关系--等待返回或结束

进程创建到回收的基本步骤:

1 在Linux系统中,通常调用fork()系统调用,该系统调用通过复制一个现有进程来创建一个全新的进程。调用fork()的进程被称为父进程,新产生的进程被称为子进程。在该调用结束时,在返回点这个相同位置上,父进程恢复执行,子进程开始执行。fork() 系统调用从内核返回两次:一次回到父进程,另一此回到新诞生的子进程。

2 通常,创建新的进程都是为了立即执行新的、不同的程序,而接着调用exec*()这族函数就可以创建新的地址空间,并把新的程序载入。在现代Linux内核中,fork()实际上是由clone()系统调用实现的

3 最终,程序通过exit()系统调用退出执行。这个函数会终结进程并将其占用的资源释放掉。父进程可以通过wait4()系统调用查询子进程是否终结,这其实使得进程拥有了等待特定进程执行完毕的能力。进程退出执行后被设置为僵死状态,直到它的父进程调用wait()或waitpid()为止。

线程---更小的执行单位

线程:是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。

特点:

1 轻型实体-----只占用必不可少的资源

2 独立调度和分派的基本单位

3 可并发执行

4 共享进程资源

与进程比较:

地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

调度和切换:线程上下文切换比进程上下文切换要快得多。
在多线程OS中,进程不是一个可执行的实体。
 
 
总结:
操作系统的职能之一,主要是对处理机进行管理。为了提高CPU的利用率。通过进程管理来协调多道程序之间的关系,使CPU得到充分的利用。并设置进程相应的信息方便cpu来回运用,而具体的进程结构需要一定的资源处理,也就是空间换时间了
posted @ 2016-04-02 13:36  20135224陈实  阅读(193)  评论(0编辑  收藏  举报