Linux下的阻塞(Block)
2007-03-24 14:29
218 查看
阻塞(Block)这个概念。当进程调用一个阻塞的系统函数时,该进程被置于睡眠(Sleep)状态,这时内核调度其它进程运行,直到该进程等待的事件发生了(比如网络上接收到数据包,或者调用sleep指定的睡眠时间到了)它才有可能继续运行。与睡眠状态相对的是运行(Running)状态,在Linux内核中,处于运行状态的进程分为两种情况:
¨
正在被调度执行。CPU处于该进程的上下文环境中,程序计数器(eip)里保存着该进程的指令地址,通用寄存器里保存着该进程运算过程的中间结果,正在执行该进程的指令,正在读写该进程的地址空间。
¨
就绪状态。该进程不需要等待什么事件发生,随时都可以执行,但CPU暂时还在执行另一个进程,所以该进程在一个就绪队列中等待被内核调度。系统中可能同时有多个就绪的进程,那么该调度谁执行呢?内核的调度算法是基于优先级和时间片的,而且会根据每个进程的运行情况动态调整它的优先级和时间片,让每个进程都能比较公平地得到机会执行,同时要兼顾用户体验,不能让和用户交互的进程响应太慢。
¨
正在被调度执行。CPU处于该进程的上下文环境中,程序计数器(eip)里保存着该进程的指令地址,通用寄存器里保存着该进程运算过程的中间结果,正在执行该进程的指令,正在读写该进程的地址空间。
¨
就绪状态。该进程不需要等待什么事件发生,随时都可以执行,但CPU暂时还在执行另一个进程,所以该进程在一个就绪队列中等待被内核调度。系统中可能同时有多个就绪的进程,那么该调度谁执行呢?内核的调度算法是基于优先级和时间片的,而且会根据每个进程的运行情况动态调整它的优先级和时间片,让每个进程都能比较公平地得到机会执行,同时要兼顾用户体验,不能让和用户交互的进程响应太慢。
相关文章推荐
- linux文件设备与I/O:read/write函数 与 阻塞 Block
- linux文件设备与I/O:read/write函数 与 阻塞 Block
- linux文件设备与I/O:read/write函数与阻塞 Block
- linux文件设备与I/O:read/write函数与阻塞 Block
- linux文件设备与I/O:read/write函数与阻塞 Block
- linux文件设备与I/O:read/write函数 与 阻塞 Block
- linux中编写自己的并发队列类(Queue 并发阻塞队列)
- Linux superblock bad (oracle 10g)
- linux 0.11 调试教程,minix 1.0 文件系统,上篇(03),super_block,137f和301看见了么?
- Linux下同步互斥阻塞
- Linux Socket 摘要(二)(基于TCP的C/S基本实现,相关基础知识,非阻塞select)
- Linux - 非阻塞socket编程处理EAGAIN错误
- Linux 设备驱动中的阻塞与非阻塞I/O
- linux文件系统文件路径,inode,block号,sector号的相互转换
- 有效理解Linux同步异步阻塞非阻塞的两篇文章(转)
- linux系统中 /dev/mtd 与 /dev/mtdblock
- Linux 0.12 OS. block - ll_rw_blk.c
- linux设备驱动程序中的阻塞机制
- 面试中的soket编程相关(一)(如何判断连接状态断开,Linux:C/Socket多路复用select(),阻塞
- linux设备驱动程序中的阻塞机制