线程
执行流
任务调动器是操作系统中用于把任务轮流调度上处理器运行的一个软件模块。调度器在内核中维护一个任务表,然后按照一定的算法,在任务表中选择一个任务放到处理器上运行,当任务的时间片到期后,再选另一个任务放到处理器运行。
执行流就是一段逻辑上独立的指令区域,是人为给处理器安排的处理单元。指令是由处理器执行,它引领处理器前进的方向,用“流”来表示处理器中程序计数器的航向。执行流是独立的,每个执行流都有自己的栈、寄存器映像和内存资源,也就是执行流的上下文环境。执行流就是线程和进程,成为了处理器的基本执行单位。
线程的概念
线程是运行一段函数的载体,构建一套线程方法,让函数在此函数中被调用,让处理器去执行。线程的实际功能就是相当于调用了这个函数,从而让函数执行。线程是一套机制,可以为一般的代码块创造它所依赖的上下文环境,从而让代码块具有独立性,可以被处理器专门执行。
线程与进程的关系
进程拥有此程序运行所需全部资源,而把任务分给其中的一个个线程来形成执行流,进程=资源+线程。
线程就是:具有能动性、执行力、独立的代码块。
进程是:线程加上资源,分为单线程进程和多线程进程。
线程没有自己的地址空间,是资源使用者,进程是资源拥有者。
程序控制块PCB
操作系统为每个进程提供一个PCB,就是进程的身份证,用来记录与此进程相关的信息,比如进程状态,PID,优先级等。