计算机组成原理(36): 分时之一——进程
lipiwang 2025-06-08 22:30 3 浏览 0 评论
建立一个虚拟机VM
目标:给每个程序一个自己的虚拟机“Virtual Machine”,程序并不知道其他的虚拟机。
1.1 进程(Process)
为了捕获正在运行的程序,我们创建一个称为“进程(Process)”的新抽象概念。进程包括运行程序时将使用的所有资源:
- CPU硬件状态:寄存器R0,R1,…,R30中的值
- 上下文(虚拟地址空间):包括代码(Code),数据值,堆栈(Stack)和从堆(Heap)动态分配的数据对象。在MMU的管理下,这一部分可以驻留在主内存中或驻留在辅助存储中。MMU的硬件状态取决于上下文编号(Context-Number)寄存器和页面目录(Page-Directory)寄存器,还包括位分层页面隐射分配的页面。
- 程序计数器PC,栈Stack
- 程序(w/shared code)
- 虚拟I/O设备(virtual I/O device)的信息:如:在文件系统的哪里读写文件,与开放网络连接相关的状态和缓冲区,用户界面中的未决时间(如键盘字符单击和鼠标单击),依次类推。
上述所有信息被称作进程的“状态(State)”,每一个进程都有一个“状态”,通过捕获进程的状态可以了解其一切执行情况。
1.2 操作系统OS(Operation System)
有一个特殊的特权进程,称为操作系统OS(Operation System),在自己的内核模式(kernel-mode)上下文中运行。
- 操作系统管理每个进程的所有簿记,安排定期运行的流程。
- 操作系统将为进程提供各种服务,例如模拟每个进程的虚拟I/O设备处理实际的I/O:访问文件中的数据,建立网络连接,管理窗口系统和用户界面等等。
- 要将运行模式从一个用户模式切换到另一个用户模式,操作系统将需要捕获并保存当前用户模式进程的“整个(entire)状态: (1) 其中一些已经存在于主内存中,因此我们就放在那里;(2) 其中一些可以在各种内核数据结构中找到;(3) 其中一些我们需要能够对存在于CPU和MMU中的各种硬件资源进行保存和还原。
为了成功实施进程,操作系统必须确保每个进程看起来像都在各自独立的“虚拟机”上运行。
每个进程一个虚拟机
我们的目标是在所有虚拟机之间有效共享一台物理机。
2.1 一台物理机的组成
CPU和主存储器构成了计算机系统核心的计算引擎。
连接到CPU的是各种外围设备,外设“periphery”是连接到CPU的各种外围设备,指示的是CPU的周边硬件资源。包括:
- 计时器(timer)会生成周期性的CPU中断,可用于触发周期性的操作。
- 辅助存储为系统提供了大容量的非易失性存储器
- 连接设备:与外界的联系也很重要,许多计算机都包括用于可移动设备的USB连接,提供有线或无线的网络连接。
- 用户的输入输出设备:监视器,键盘和鼠标
- 相机和麦克风:现在已成为计算机的标配
2.2 操作系统对物理机的管理
物理机由在特权内核上下文中运行的OS管理。操作系统处理与外围设备的低级接口,初始化并管理上下文等。
2.3 操作系统创建虚拟机
正是操作系统创建了每个进程都能看到的虚拟机,用户模式程序可以直接在物理处理器上运行,但它们的执行可能被计时器中断。通过计时器,使操作系统有机会保存当前进程的状态,然后运行下一个进程。
- 操作系统通过MMU为每个进程提供独立的虚拟地址空间,而与其他进程无关。
- 操作系统提供的虚拟外设将当前进程与其他进程共享的CPU物理外设的所有细节隔离开。
- 窗口(Windows)的概念允许进程访问显示器像素的矩阵阵列,而不必担心窗口中的某些像素是否被其他窗口隐藏,也不必担心如何确保鼠标光标始终出现在任何正在显示的显示器顶部。
- I/O事件(I/O events):进程无需直接访问I/O设备,每个进程都通过I/O事件(如键入字符,单击鼠标等生成的事件)访问I/O流。例如操作系统如何确定哪些类型的字符属于哪个进程,在大多数窗口系统中,用户单击窗口以指示拥有该窗口的进程当前具有键盘交点,并应该接收后续键入的任何字符。在显示器上单击鼠标的位置决定当前窗口属于哪个进程。
- 所有这些都是用简单抽象的概念描述共享计算机外设的物理资源的细节
- files:访问磁盘上的文件也是如此。操作系统提供了有用的抽象,使得每个文件看起来都是连续的、可增长的支持读写操作的字节数组。操作系统知道如何将文件映射到磁盘上的扇区池并处理坏的扇区,之后通过预读和写操作减少扇区碎片并提高吞吐量。
- Sockets:对于网络,操作系统提供远程套接字的按顺序字节流的访问。它实现了适当的网络协议并对流进行打包,从而解决数据量大的传输问题,并解决传输过程中的丢失、错误或乱序的数据包。
- SVCs:超级用户调用(Supervisor Calls),这是一种在OS中调用代码的受控访问过程调用。为了配置和控制这些虚拟服务,该进程使用超级用户调用与操作系统进行通信。每个虚拟服务的涉及和实现细节都超出了本篇的范围,如果感兴趣,请参阅操作系统。
一句话,操作系统为每个进程提供独立的虚拟机,并定期从运行一个进程切换到运行下一个进程。
相关推荐
- 想减少Windows 11内存占用?请取消固定Teams
-
如果你想要提高Windows11系统的运行速度,那么可以禁用某些默认启用的功能和设置。如果你的Windows11是安装在已经停止支持的设备或者内存容量不高的旧设备,那么应该立即限制或禁用固...
- Windows查看端口占用、查看PID对应的进程、并终止进程
-
Windows下:查看端口占用netstat-ano|findstr"端口号"获取到pid查看PID对应的进程tasklist|findstr"进程ID"...
- 计算机组成原理(36): 分时之一——进程
-
建立一个虚拟机VM目标:给每个程序一个自己的虚拟机“VirtualMachine”,程序并不知道其他的虚拟机。1.1进程(Process)为了捕获正在运行的程序,我们创建一个称为“进程(Proce...
- window系统如何停止端口被占用的进程(高手版)
-
如上图1,作为开发人员是不是经常遇到这个问题?(Webserverfailedtostart.Port9527wasalreadyinuse.)当然,如果在你知道确实有某个进程正占...
- 电脑的文件无法删除咋回事?你需要这款神兵利器
-
很多朋友用电脑的时候,都遇到过文件无法删除的情况。这往往是由于文件被某个软件、进程所调用所引发的——在Windows中,某个文件如果被使用,这个文件可能就没法进行删除、重命名之类的操作了。想要进一步操...
- Windows日志分析(windows 日志文件)
-
1.Windows日志文件简介1.1Windows日志核心分类1.系统日志系统日志包含由Windows系统组件记录的事件,记录系统进程和设备驱动程序的活动。由它审核的系统事件包括启动失败的设备驱动程...
- 电脑软件崩溃、闪退不用慌!DJS Tech 教你几招轻松解决
-
当你正全神贯注用电脑处理重要文件、沉浸在精彩的游戏世界,或是观看喜欢的视频时,软件突然崩溃、闪退,那一刻的烦躁简直难以言喻。别着急,DJSTech作为深耕计算机领域多年的专业团队,为你带来一系列超...
- 微软Win11推进淘汰控制面板,时间服务器配置迁移至设置应用
-
IT之家5月29日消息,科技媒体Winaero昨日(5月28日)发布博文,报道称微软在Windows11系统中,继续推进“淘汰控制面板”进程,配置时间服务器地址选项迁移到设置应...
- 微软 PowerToys更新,可帮你找出 Win11上哪些进程正在占用该文件
-
IT之家11月3日消息,微软针对Windows11和Windows10的PowerToys已经更新到了最新的0.64.0版本,并上线了一个名为“文件锁匠FileLock...
- Windows基础操作 认识任务管理器(windows任务管理器的使用)
-
Windows基础操作:认识任务管理器任务管理器(TaskManager)是Windows系统中一个功能强大的实用工具,它为用户提供了实时监控系统资源、管理正在运行的程序和服务的能力。掌握任务管理器...
- windows——netstat过滤(终止进程)
-
windows——netstat过滤(终止进程)在Windows操作系统中,使用netstat命令可以查看网络连接的状态。要过滤特定协议或端口的连接,可以使用以下命令:查看所有连接:netstat-...
- 只要这么做 Windows Defender与第三方就能和平共存啦
-
无论大家是否喜欢WindowsDefender,伴随着Windows10的不断升级,它已经成为系统的底层必备组件之一。虽然我们有各种各样的方法去关闭它,换用顺手的第三方,但只要更新打补丁,噩梦就来...
- Win10如何彻底关闭wsappx进程(win10 wsappx怎么关闭)
-
win10如何彻底关闭wsappx进程?wsappx进程是什么?wsappx进程是Windows10系统的一部分,这个进程是WindowsStore和微软通用应用程序平台(UWP)的依赖进程。...
- Windows环境黑客入侵应急与排查(黑客入侵电脑原理)
-
1文件分析1.1临时目录排查黑客往往可能将病毒放在临时目录(tmp/temp),或者将病毒相关文件释放到临时目录,因此需要检查临时目录是否存在异常文件。假设系统盘在C盘,则通常情况下的临时目录如下...
- Windows 11 24H2 KB5044384出现大面积安装失败、任务管理器0进程等问题
-
Windows11KB5044384更新由于出现大量错误而无法在Windows1124H2上安装、其中包括一个奇怪的错误,即由于0x800f0922、0x800736b3和0x8...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)