网站建设怎么接单,长沙这边网站建设,网站pv uv统计,wordpress显示同一分类的文章一.多进程是操作系统基本图像
进程都是在内核进行 二.用户级线程
2.1线程引入
可以切指令不切表#xff0c;也就是资源不动#xff0c;指令执行分开#xff0c;更加轻量化#xff0c;从而提高效率#xff0c;保留并发优点#xff0c;避免进程切换代价#xff0c;也就…一.多进程是操作系统基本图像
进程都是在内核进行 二.用户级线程
2.1线程引入
可以切指令不切表也就是资源不动指令执行分开更加轻量化从而提高效率保留并发优点避免进程切换代价也就引入了线程 2.2多线程例子 同时触发以及用yield交替执行 104是B的函数返回地址将104压栈其他也是陆续压栈用两个执行序列和一个栈就会发现第一个线程居然返回的函数地址是404也就是线程在乱跑 解决办法一个序列一个栈切回线程要将栈切回用一个地方存放栈指针也就是TCB(thread control block)esp是cpu寄存器理解为大脑利用TCB和栈配合就解决了多线程执行问题每个线程有自己的TCB和栈 用户级线程缺点 由于某个线程阻塞导致进程阻塞而内核并不知道不会切换到下一个线程会到另一个进程这样浏览器例子就不会显示内容 但是内核级线程就不会这样 三.内核级线程
3.1 多核利用核心级线程优势
并发同时触发交替执行共用一套资源这意味着如果程序在单核处理器上运行那么这两个线程将交替地换入或者换出内存。这些线程是同时“存在”的——每个线程都处于执行过程中的某个状态。 并行同时触发同时进行如果程序能够并行执行那么就一定是运行在多核处理器上。此时程序中的每个线程都将分配到一个独立的处理器核上因此可以同时运行。
多核共用一套内存映射真正实现核心级线程才能利用多核如果用多进程就需要不同资源内存映射那实际上对于多核就是一套资源反复切换如果用用户级线程操作系统是看不见的没法使用多核也就是多核只能适用于核心级线程才能发挥优势 3.2和用户级线程对比 进入内核只能是中断INT指令是一个中断指令 四.总结
多个线程同时执行任务肯定存在线程间的同步和互斥 线程同步指线程之间所具有的一种制约关系一个线程的执行依赖另外一个线程的消息当它没有得到另一个线程的消息时应等待直到消息到达时才被唤醒。 线程互斥指对于共享的进程系统资源每个线程访问时的排他性。当有若干个线程都要使用某一个共享资源时任何时刻最多只允许一个线程去使用其他线程必须等待直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步。
线程间的同步方法大体可以分为两类 用户模式(使用时不需要切换内核态只在用户态完成操作)临界区适合一个进程内的多线程访问公共区域或代码段时使用 内核模式(利用系统内核对象的单一性来进行同步使用时需要切换内核态与用户态) 事件通过线程间触发事件实现同步互斥 互斥量适合不同进程内多线程访问公共区域或代码段时使用与临界区相似 信号量与临界区和互斥量不同可以实现多个线程同时访问公共区域数据原理与操作系统中PV操作类似先设置一个访问公共区域的线程最大连接数每有一个线程访问共享区资源数就减一直到资源数小于等于零 参考:
操作系统_哈尔滨工业大学_中国大学MOOC(慕课)