重温操作系统——“共享”CPU

本文深入探讨操作系统如何管理CPU资源,通过分时共享实现多个进程轮流使用CPU,阐述用户态与内核态的区别,系统调用的过程,以及上下文切换的原理,包括PCB、内核栈的作用,旨在理解操作系统如何保障进程的执行与资源安全。
摘要由CSDN通过智能技术生成

操作系统是一门重要的基础知识,了解这门基础知识不仅能帮助我们写出更优秀的程序,还能提高我们的学习能力。当我发现有时候经常看不懂大佬的文章,听不懂大佬间谈话,看不懂项目文档的时候,我想我是时候补充一下基础知识了。本系列篇章内容基于Operating Systems: Three Easy Pieces的读后感,是一份操作系统知识的归纳总结。

“共享”CPU

我们的电脑使用一块CPU“同时”运行着各式各样的应用程序,操作系统通过分时共享的方式,让每个程序轮流使用CPU,就好像每个程序都有自己的CPU一样(就好像共享单车那样)。为了使CPU能够被各进程分时共享,操作系统要掌握分配CPU使用权的权利,同时也要履行服务好各项进程的义务。本篇文章就操作系统如何行使“权利”与履行“义务”做了一些归纳总结——操作系统如何掌握系统的控制权?操作系统如何协调各项进程“共享”CPU?

限制用户进程行为

操作系统是有“被害妄想症”的(事实上,它必须要有被害妄想症...),它不信任用户进程,总想着用户进程充满恶意,会阻碍系统的正常运作。于是乎,只有操作系统才有权限直接访问诸如内存,硬盘,以及其他系统资源。一但有用户进程试图越过操作系统执行这些“危险”的访问操作,该进程就会被杀死。让用户进程直接访问内存,硬盘等资源的确也是很危险的一件事,试想一下如果一个进程可以任意读取和修改其他进程的内存数据,那么基本上所有的进程都不能正常运行了。所以操作系统必须要限制用户进程的行为。

用户态(user mode)与内核态(kernel mode)

操作系统通过划分用户态和内核态来限制用户进程的行为:

  • 用户态:用户进程运行在用户态,只能执行部分低权限的指令。
  • 内核态:操作系统运行在内核态,具备执行所有指令的权限。

CPU硬件支持

为了区分用户态和内核态,操作系统需要硬件的帮助。CPU要提供某种权限机制,来区分用户态和内核态的访问权限。例如,x86 CPU提供4种特权级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值