(二)进程与线程
1.关于进程:
——进程在用户方面,包含了程序的运行状态和这个程序所用的抽象内存及存储数据。
——进程在操作系统方面:包括:
(1)一个进程的运行状态(通过在进程中存储”状态寄存器、指令计数器、栈指针、通用寄存器“等代表进程目前运行状态的值实现)
(2)从抽象内存向实际内存和外存(磁盘等存储设备)的映射,以便通过抽象内存的地址获得物理地址及其存储的数据(通过分页存储、分段存储等方法来实现映射)
我们可以将进程笼统看成是一个或多个线程与一个地址空间的结合体
2.关于进程的地址空间:
一个进程的全部内存地址和存储的数据,称为这个进程的地址空间
3.关于线程:
由于多核计算机程序可并发,因此一个进程可能同时包含多个不同的运行状态。为更好区分进程在一个处理器上的运行状态和进程本身的运行状态,于是引入“线程”这一概念。
4.进程控制块和线程控制块:
每个线程拥有一个线程控制块,用来存储“状态寄存器、指令计数器、栈指针、通用寄存器”等数值(也就是在该线程下的进程运行状态),同一进程的所有线程都共享同一个地址空间
进程控制块中包含实现地址转换信息和进程运行状态的线程信息,以及系统在调度进程时需要的信息(比如进程号、进程所处状态、进程优先级等)
注意!!
进程控制块只需存储从抽象内存地址获得实际物理地址的方法,而不会将整个地址空间中地址及其数据都存储
由于进程控制块中的信息是用户进程无权修改的,因此进程控制块存储在内核空间中
5.三态模型和五态模型
进程三态模型包括运行态(正在执行),就绪态(准备就绪,排入就绪队列等待执行),等待态(等待某一事件发生后才会变为就绪态)
五态模型还包括新建态(被创建尚未加入就绪队列的状态。内核建一个进程需要给它分配资源等,在这个过程中进程就处于新建态)和终止态(终止态对应进程结束但尚未被系统收回的状态,此时系统仍可以获得该进程结束时的信息)
新建态可避免一个新进程在未获得全部资源前就开始运行,终止态可避免一个进程运行完毕后即被系统收回而导致无法获取其信息(因为无法获取该进程信息而导致某一进程停滞不前,产生“僵尸进程”)
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢