2. 进程切换、上下文及上下文切换、进程阻塞、文件描述符

2. 进程切换、上下文及上下文切换、进程阻塞、文件描述符

阅读顺序
1. CPU查找物理寻址和虚拟寻址、虚拟内存优点、不同位数的操作系统虚拟内存大小关系、Linux虚拟内存用户空间和内核空间
2. 进程切换、上下文及上下文切换、进程阻塞、文件描述符
3. 传统IO数据拷贝、同步阻塞IO在哪里阻塞、同步阻塞IO怎么解决、IO多路复用、多路复用的特点、常见多路复用方案

进程切换

操作系统4核,可以同时运行几百个任务,理论上如果是并行执行的话,那么只可能同时执行4个任务,所以任务的执行是并发执行的。系统有CPU的时间的分片的算法,会在很短的时间内将CPU轮流分配给它们,所以我们看起来就像是这些应用程序同时运行,是交替执行的过程,那么也就是说内核必须有能力将一个进程暂停、挂起、阻塞、恢复,然后实现并发执行的效果,这种行为或动作就是进程的切换。

上下文及上下文切换

每个任务在运行之前,CPU必须要知道任务从哪里加载,从哪里开始运行,也就是CPU必须先给进程设置好它在寄存器和程序计数器的数据,这两个数据就是CPU的上下文,如果没有上下文,就恢复不了,因为无法找到 上一步执行的状态,这个状态就叫做上下文,是保存在系统内核里的

挂起和恢复的过程中,这种进程之间的切换,就叫做上下文切换

因为CPU从内存中找到了你的上下文,然后继续执行任务,所以在我们看起来任务就是连续执行的一样,上下文的切换需要完成一系列的工作,所以说 上下文的切换是一项比较消耗资源和时间的操作,因此要尽量避免上下文的切换

进程阻塞

正在运行的进程由于提出系统服务请求(如I/O操作),但因为某种原因未得到操作系统的立即响应,该进程只能调用阻塞原语把自己变成 阻塞状态,阻塞状态不会占用CPU的资源

文件描述符

Linux里面一切皆文件,包括你的硬件设备。文件描述符FD是内核为了高效管理已被打开的文件所创建的索引(一个非负的整数),用于指向被打开的文件,所有执行I/O操作的系统调用(System Call)都通过文件描述符

文件描述符缩写描述
0STDIN标准输入(键盘)
1STDOUT标准输出(显示器)
2STDERR标准错误(显示器)

相关联

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值