网站建设和实现论文,网站备案怎么更改吗,wordpress怎么自己写源码吗,做广告牌子进程那一章#xff0c;我们留下了一个问题 第一个cpu调用进程#xff0c;进程调用i/o设备#xff0c;主动进入ready 队列 第二个cpu将程序执行时间平均分时#xff0c;进程执行时间到 第三个fork函数#xff0c;我们上一章的lab有实践#xff0c;可以看出是父进程主动条用…进程那一章我们留下了一个问题 第一个cpu调用进程进程调用i/o设备主动进入ready 队列 第二个cpu将程序执行时间平均分时进程执行时间到 第三个fork函数我们上一章的lab有实践可以看出是父进程主动条用fork函数产生子进程 第四个interrupt上一章我们有演示wait等待所以这个也是主动的。 上一章我们做的实验可以看出这里的执行流内存不一样pid不一样但子进程的内存数据是clone父进程的。 这里有个坏处 如果能在一个进程当中出现两个一样的执行流这两个执行流共享内存空间 我们管这样的方式叫做并发的线程
多进程通信和多线程通信的区别 多进程通信如父进程正在进行copy文件而子进程有一个取消按钮 点击之后取消按钮产生一个子进程父进程等待子进程执行发现子进程是中断父进程
多线程通信 父线程1在copy文件产生n个子线程因为可能要copy多个文件夹然后当点击取消时产生要给wait abouting线程去通知父线程取消copy文件。 两者的区别在于点击取消事件时进程会产生一此clone子进程要clone父进程产生一个内存空间 这里需要实验进行演示不然不好理解。
进程切换开销 我们推出线程这个概念的动机
线程的定义 下面我们可以看到单线程的单进程只有一个PCBcodedate区域而单进程多线程是共享codedatafiles区域的。其实就是共享了存储数据、代码、全局变量但每个线程都有自己的堆栈空间和寄存 单cpu多线程 线程并发需要来回切换 多cpu多线程 多线程在多cpu环境下也可以设置为并行模式 现在操作系统的线程概念 多核编程 我们需要设计程序时将多核的性能应用起来不然全是顺序执行的单进程单线程的应用完全是浪费资源的行为。 多核线程模型 多线程模型 多对一模型用户线程在用户模式下一个进程有多个线程这个进程对应一个内核线程这个进程有多个线程也就达成了多个用户线程对应一个内核线程 如果只有一个内核 虽然我们也有多个进程执行流在用户感觉上是多个进程并行但是其实因为我们只有一个内核所以一次只能运行一个线程所以这里还是并发但这里不止是进程的并发也是线程的并发上面那个一对多每个进程最少有一个线程可以和其他进程进行并发这就是单核和多核的区别。
一对一 这里可以看出不管是进程还是线程都做到一对一实现逻辑上基本可以说这些进程是并行的但是这也取决于核心数量
多对多 多路复用取决于cpu的调度每个进程的开销不一样需要cpu进行调度去分配内核线程
线程库 linux关注于posix pthread 这个p代表用户线程和内核线程都可以被创建