制作网页创建站点的步骤,自己做网站花多少钱,模板 wordpress,怎么查网站的备案号一、线程
1.1 定义
线程#xff1a;线程是进程中的实体#xff0c;一个进程可以拥有多个线程#xff0c;一个线程必须有一个父进程。线程有时被称为轻量级进程#xff0c;是程序执行流的最小单元。
线程的组成部分#xff1a;
1. 线程ID#xff1a;线程标识符
2. 当前…一、线程
1.1 定义
线程线程是进程中的实体一个进程可以拥有多个线程一个线程必须有一个父进程。线程有时被称为轻量级进程是程序执行流的最小单元。
线程的组成部分
1. 线程ID线程标识符
2. 当前指令指针PC
3. 寄存器集合存储单元寄存器的集合
4. 堆栈堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中堆栈是个特殊的存储区主要功能是暂时存放数据和地址通常用来保护断点和现场。1.2 特点
线程不拥有系统资源只有运行必须的一些数据结构它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程从而实现程序的并发执行。一般线程具有就绪、阻塞和运行三种基本状态。 线程的状态转换图如下所示
二、进程
2.1 定义
进程进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元在传统的操作系统中进程既是基本的分配单元也是基本的执行单元。
进程的组成部分
Ⅰ、程序段
存放要执行的代码。
Ⅱ、数据段
存放程序运行过程中处理的各种数据。
Ⅲ、进程控制块PCB
1、进程描述信息①进程标识符②用户标识符。
2、进程控制和管理信息①进程当前状态②进程优先级。
3、资源分配清单①程序段指针②数据段指针③键盘④鼠标。
4、处理及相关信息各种寄存器值保存当前程序执行到哪一句。2.2 特点
动态性最基本的特征 进程是程序的一次执行过程是动态地产生、变化和消亡的。并发性 内存中有多个进程实体各进程可并发执行。独立性 进程是能独立运行、独立获得资源、独立接受调度的基本单位。异步性 各进程按各自独立的、不可预知的速度向前推进操作系统要提供“进程同步机制”来解决异步问题。结构性 每个进程都会配置一个PCB结构上看进程由程序段、数据段、PCB组成。进程的状态 ①运行态占有CPU并在CPU上运行。 ②就绪态已经具备运行条件但没有空闲CPU而暂时不能运行。已经拥有了除CPU之外的所有需要的资源 ③阻塞态因等待某一事件而暂时不能运行。如等待分配打印机、等待读磁盘操作的结果 进程的状态转换过程图如下
三、管程
3.1 定义
管程定义了一个数据结构和能为并发进程所执行的一组操作这组操作能同步进程和改变管程中的数据。
管程的组成部分
1一组局部变量
2对局部变量操作的一组过程
3对局部变量进行初始化的语句。3.2 特点
任何进程只能通过调用管程提供的过程入口才能进入管程访问共享数据任何时刻仅允许一个进程在管程中执行某个内部过程。
四、总结和扩展
4.1 总结
Ⅰ、进程和线程区别
根本区别进程是系统进行资源分配如地址和文件等的基本单位线程是CPU调度和分派的基本单位。
拥有资源进程是拥有资源的一个独立单位线程不拥有系统资源但线程有自己的堆栈和局部变量但可以访问隶属于进程的资源。进程所维护的是程序所包含的资源静态资源 如地址空间打开的文件句柄集文件系统状态信号处理handler等线程所维护的是线程运行相关的资源动态资源如运行栈等。
包含关系一个线程只能属于一个进程而一个进程可以有多个线程但至少有一个线程。
切换上下文切换包含了寄存器的存储和程序计数器存储的指令内容。进程切换与线程切换的一个最主要区别就在于进程切换涉及到虚拟地址空间的切换而线程切换则不会。因为每个进程都有自己的虚拟地址空间而线程是共享所在进程的虚拟地址空间的因此同一个进程中的线程进行线程切换时不涉及虚拟地址空间的转换。Ⅱ、进程和程序的区别
进程是暂时的是程序在数据集上的一次执行程序是永存的。
进程是动态的观念程序是静态的观念。
1个进程一般只能对应1个程序1个程序可以对应多个进程。Ⅲ、同一进程间的线程共享/独享哪些资源
共享的资源有
①堆由于堆是在进程空间中开辟出来的所以它是理所当然地被共享的因此new出来的都是共享的16位平台上分全局堆和局部堆局部堆是独享的。
②全局变量它是与具体某一函数无关的所以也与特定线程无关因此也是共享的。
③静态变量虽然对于局部变量来说它在代码中是“放”在某一函数中的但是其存放位置和全局变量一样存于堆中开辟的.bss和.data段是共享的。
④文件等公用资源这个是共享的使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式包括信号、临界区、事件和互斥体。注意每个进程都有自己的地址空间即进程可以访问的虚拟地址范围。每个进程可以有多个线程所以进程中的所有线程共享相同的虚拟地址空间。
独享的资源有
①栈栈是独享的线程默认栈大小为8M。
②寄存器的值线程里存放的是副本包括程序计数器PC。4.2 扩展
问题CPU包含的寄存器有哪些哪些是程序员可以操作的 以80386的CPU为例寄存器分为6类包括通用寄存器、段寄存器、标志和控制寄存器、系统地址寄存器、调试寄存器和测试寄存器。 其中可供应用程序员使用的为通用寄存器EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI、段寄存器CS、DS、SS、ES、FS、GS以及标志和控制寄存器EIP、EFLAGS。可以指定任何通用寄存器的内容作为操作数的地址以及在形成地址的过程中作如加法或减法这样简单的算术运算。
引用
[1]https://blog.csdn.net/Tir_zhang/article/details/125072294 [2]https://zhidao.baidu.com/question/247918947446298244.html [3]https://blog.csdn.net/qq_44488586/article/details/119949954 [4]https://blog.csdn.net/TABE_/article/details/122417359 [5]https://www.pianshen.com/post/490724757039/