进程线程的调度阻塞唤醒

简介:

1Cpu线程调度

1一个CPU最多可以运行一个进程或者一个线程,如果是双核的CPU最多可运行 两个进程或两个线程, 操作系统是多任务操作系统,他不止同时运行两个任务,可能有很多个,如word文档,QQ,音乐,浏览器,等都是一个或多个进程或线程, 如果要跑这个多个进程 每个进程都对应一个应用程序,或里面的线程, 如果有N个这样的线程,那么一个2核的CPU 处理这样的线程, 每一次 一个核只能挂一个线程, 这时候就涉及到调度。

2什么是调度怎么调度: OS会给每个进程或线程可调度的单元 一个叫做时间片的东西,根据线程的级别给时间片,每个CPU 执行这个线程时间是根据这个时间片决定的,然后把这个线程挂起,就是暂停,然后这个CPU的核去执行另一个线程 执行完所有线程后,回来又开始执行第一个线程或进程。 每一个线程根据时间片一次进行调度,这样就保证了每个线程都能被执行的到, 人类是感觉不到这个暂停的,因为CPU速度是非常快的,
线程会经常休眠,强制休眠就是 时间片到了,系统给你休眠挂起, 还有就是主动休眠, 例如一个程序窗口
打开后不去动他,他就是休眠状态。

3主动休眠: 比如说 c语言的Read读取文件的函数 调用之后 就会主动休眠,他要等OS 从磁盘里读取文件数据到内存,然后这个线程才会被唤醒,读到文件,满足他继续往下的条件。

4阻塞与唤醒:比如一个网卡,他和OS相连 有很多的SOCKET对象,又有很多的线程,其中的线程就阻塞在这个socket对象上面, 知道OS线程读取到网卡的数据,然后解析到这个socket对象上,这时候就会唤醒这个线程。


 本文转自超级极客51CTO博客,原文链接:http://blog.51cto.com/12158490/2057840,如需转载请自行联系原作者



相关文章
|
14天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
30天前
|
消息中间件 安全 Linux
线程同步与IPC:单进程多线程环境下的选择与权衡
线程同步与IPC:单进程多线程环境下的选择与权衡
58 0
|
1月前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
82 0
|
1月前
|
消息中间件 Linux 调度
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
67 0
|
1天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
2天前
|
监控
写一个线程来监控各线程是否发生阻塞
写一个线程来监控各线程是否发生阻塞
11 0
|
8天前
|
调度 Python
Python多线程、多进程与协程面试题解析
【4月更文挑战第14天】Python并发编程涉及多线程、多进程和协程。面试中,对这些概念的理解和应用是评估候选人的重要标准。本文介绍了它们的基础知识、常见问题和应对策略。多线程在同一进程中并发执行,多进程通过进程间通信实现并发,协程则使用`asyncio`进行轻量级线程控制。面试常遇到的问题包括并发并行混淆、GIL影响多线程性能、进程间通信不当和协程异步IO理解不清。要掌握并发模型,需明确其适用场景,理解GIL、进程间通信和协程调度机制。
28 0
|
8天前
|
算法 Linux 调度
深入理解Linux内核的进程调度机制
【4月更文挑战第17天】在多任务操作系统中,进程调度是核心功能之一,它决定了处理机资源的分配。本文旨在剖析Linux操作系统内核的进程调度机制,详细讨论其调度策略、调度算法及实现原理,并探讨了其对系统性能的影响。通过分析CFS(完全公平调度器)和实时调度策略,揭示了Linux如何在保证响应速度与公平性之间取得平衡。文章还将评估最新的调度技术趋势,如容器化和云计算环境下的调度优化。
|
13天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
20 3
|
23天前
|
安全 Linux API
Android进程与线程
Android进程与线程
18 0