2.OS-Virtualization|抽象:进程
进程:运行中的程序。
没有运行前,就是一个代码,他是静态的。
通过一系列抽象,有了状态。
通过进程抽象,我们需要明白计算机设计的一些思考点:如何分离?如何管理?如何抽象?
- 运行
- 就绪
- 阻塞
它就是一个状态机,一系列无情的指令集。
而这种状态的不停切换,也得益于一种时分共享技术。
进程可以大体抽象为:状态+存储。
进行的操作来于一系列API:创建,销毁,等待,状态。
进程信息的管理:依赖于进程列表。
创建过程
轮转过程
上面是一系列我的精华总结:接下来的是具体内容。
2.0|时分共享技术实现多并发
进程的狭义定义非常简单:是运行中的程序。程序本身是没有生命周期的,它只是存在磁盘上面的一些指令(也可能 是一些静态数据)
通过允许资源由一个实 体使用一小段时间,然后由另一个实体使用一小段时间, 可以被许多人共享 。
时分共享的自然对应技术是空分共享,资源在空间上被划分给希望使用它的人。 例如,磁盘空间自然是一个空分共享资源,因为一旦将块分配给文件,在用户删除文件之前,不可能将 它分配给其他文件。
虚拟化实现了CPU假象。
2.1|抽象:进程
- 进程的机器状态(machine state):程序在运行时可以读取或更新的内容。
- 进程的机器状态有一个明显组成部分,就是它的内存。指令存在内存中。
- 进程的机器状态的另一部分是寄存器 。
- 程序也经常访问持久存储设备
分离策略和机制,how and which,模块化形式,软件设计原则。
2.2|进程API
- 创建(create):操作系统必须包含一些创建新进程的方法。在 shell 中键入命令或双击应用程序图标时,会调用操作系统来创建新进程,运行指定的程序。
- 销毁(destroy):由于存在创建进程的接口,因此系统还提供了一个强制销毁进 程的接口。当然,很多进程会在运行完成后自行退出。但是,如果它们不退出, 用户可能希望终止它们,因此停止失控进程的接口非常有用。
- 等待(wait):有时等待进程停止运行是有用的,因此经常提供某种等待接口。 其他控制(miscellaneous control):除了杀死或等待进程外,有时还可能有其他控制。例如,大多数操作系统提供某种方法来暂停进程(停止运行一段时间), 然后恢复(继续运行)。
- 状态(statu):通常也有一些接口可以获得有关进程的状态信息,例如运行了多 长时间,或者处于什么状态 。
2.3|进程创建
OS ——>具体的抽象层实现。
2.4|进程状态
- 运行(running):在运行状态下,进程正在处理器上运行。这意味着它正在执行 指令。
- 就绪(ready):在就绪状态下,进程已准备好运行,但由于某种原因,操作系统 选择不在此时运行。
- 阻塞(blocked):在阻塞状态下,一个进程执行了某种操作,直到发生其他事件时才会准备运行。一个常见的例子是,当进程向磁盘发起 I/O 请求时,它会被阻塞, 因此其他进程可以使用处理器。
2.5|数据结构
进程列表(process list)是第一个这样的结构。这是比较简单的一种,但是,任何能够同时运行多个程序的操作系统当然都 会有类似这种结构的东西,以便跟踪系统中正在运行的所有程序。有时候人们会将存储关于进程的信息 的个体结构称为进程控制块(Process Control Block,PCB)
其他状态: 除了运行、就绪和阻塞之外,还有其他一些进程可以处于的状 态。有时候系统会有一个初始(initial)状态,表示进程在创建时处于的状态。另外,一个进 程可以处于已退出但尚未清理的最终(final)状态(在基于 UNIX 的系统中,这称为僵尸状 态①)。这个最终状态非常有用,因为它允许其他进程(通常是创建进程的父进程)检查进 程的返回代码,并查看刚刚完成的进程是否成功执行(通常,在基于 UNIX 的系统中,程 序成功完成任务时返回零,否则返回非零)。
2.OS-Virtualization|抽象:进程的更多相关文章
- Virtual servers on a Raspberry Pi with the light weight OS virtualization system Docker!
转自:http://www.hyggeit.dk/2014/02/virtual-servers-on-raspberry-pi-with.html Virtual servers on a Rasp ...
- OS作业模拟进程分配与回收
OS的一个作业, 模拟进程的分配与管理 # initialize the memories and the process list(actually a dict) total_memory = 1 ...
- OS - 线程和进程的差别
进程是资源分配的基本单位,又是调度执行的基本单位.比如.用户执行自己的程序,系统就创建一个进程.并为它分配资源,包含各种表.内存空间.磁盘空间.I/O设备等. 然后.把该进程放入进程的就绪队列.进程调 ...
- Python::OS 模块 -- 进程参数
os模块的简介请参看 Python::OS 模块 -- 简介 os模块的文件和目录操作 Python::OS 模块 -- 文件和目录操作 os模块的进程管理 Python::OS 模块 -- 进程管理 ...
- Python::OS 模块 -- 进程管理
os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...
- golang语言中os包的学习与使用(文件,目录,进程的操作)
os中一些常用函数的使用: package main; import ( "os" "fmt" "time" "strings&q ...
- Virtualization
time sharing——>virtualization. OS需要low-level machinery mechanisms and high-level intelligence. 前者 ...
- Python之进程
进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代 ...
- Day9 进程理论 开启进程的两种方式 多进程实现并发套接字 join方法 Process对象的其他属性或者方法 守护进程 操作系统介绍
操作系统简介(转自林海峰老师博客介绍) #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 #二 多道技术: 1.产生背景: ...
- Python3 与 C# 并发编程之~ 进程篇
上次说了很多Linux下进程相关知识,这边不再复述,下面来说说Python的并发编程,如有错误欢迎提出- 如果遇到听不懂的可以看上一次的文章:https://www.cnblogs.com/dot ...
随机推荐
- pytest之运行环境
简介 pytest是Python最流程化的单元测试框架,它具有允许直接使用assert进行断言,而不需要使用self.assert*:可以自动寻找单测文件.类和函数,还可支持执行部分用例:Modula ...
- Python中列表、元组、字典的区别
列表: 列表是一种数据结构,每一个元素对应一个值.例如:list=['a','b','c'] 访问列表数据通过下标的方式来进行数据访问,list[下标] list.append(i) 添加数据 de ...
- UI资源,可在几分钟内创建精美的设计
UI资源,可在几分钟内创建精美的设计 组件:https://headlessui.com 图标:https://icons8.com 插画:https://undraw.co/illustration ...
- reduce处理相同id合并对象内容为数组
例: let arr = [ { situationId: '666666666666666666666', cloundClass: '999', } ...
- Java面试——缓存
一.什么是缓存 [1]缓存就是数据交换的缓冲区(称作:Cache),当某一硬件要读取数据时,会首先从缓存中查询数据,有则直接执行,不存在时从磁盘中获取.由于缓存的数据比磁盘快的多,所以缓存的作用就是帮 ...
- 详解DDD:如何避免写流水账代码?
在日常工作中我观察到,面对老系统重构和迁移场景,有大量代码属于流水账代码,通常能看到开发在对外的API接口里直接写业务逻辑代码,或者在一个服务里大量的堆接口,导致业务逻辑实际无法收敛,接口复用性比较差 ...
- MQTT(EMQX) - Java 调用 MQTT Demo 代码
POM <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse ...
- kubernetes核心实战(七)--- job、CronJob、Secret
10.job任务 使用perl,做pi的圆周率计算 [root@k8s-master-node1 ~/yaml/test]# vim job.yaml [root@k8s-master-node1 ~ ...
- Exchangis搭建安装
项目简介 Exchangis是一个轻量级的.高扩展性的数据交换平台,支持对结构化及无结构化的异构数据源之间的数据传输,在应用层上具有数据权限管控.节点服务高可用和多租户资源隔离等业务特性,而在数据层上 ...
- [Windows/Linux]判别服务器: 虚拟机 | 物理机 ?
物理主机,一般称: [宿主机] 虚拟机信息,一般涉及如下关键词: VMware : VMware 虚拟化技术 Vistualbox KVM(Kernel-based Virtual Machine): ...