JavaWeb |
您所在的位置:网站首页 › javaweb程序开发进阶源代码 › JavaWeb |
目录 一、操作系统 1、定义: 2、操作系统的基本功能: 二、进程 1、定义: 三、进程管理 1、PCB定义 (1)、身份标识 (2)、内存指针 (3)、文件描述符 2、操作系统是如何管理进程 (1)、描述进程 (2)、组织进程 四、进程调度(cpu分配) 1、状态 2、优先级 3、记账信息 4、上下文 五、内存管理(内存分配) 六、进程的虚拟空间地址 1、定义 2、进程通信 一、操作系统 1、定义:操作系统是计算机资源管理软件的统称。目前常见的操作系统有:Windows系列、Linux系列等,具体详情如下图所示: 进程相当于是一个程序完成一项任务的过程。同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。 可执行文件(.exe)相对于进程来说是静态的,只占用我们硬盘的内存,但当我们运行.exe文件时,操作系统就会把里面的信息加载到我们的内存中,并且运行其中的代码,因此就形成了一个进程。 在任务管理器中, 如下图所示这些在内存中运行的程序就相当于一个个进程。 每个进程都有自己的PCB,而PCB又包含是什么呢? (1)、身份标识身份标识符pid也就相当于我们的身份证号,每个进程都有自己的pid。 (2)、内存指针内存指针指明了进程要执行的代码内存中的地方,以及这个进程执行中依赖的数据都在哪里。当运行一个.exe文件时,操作系统就会把这个文件加载到内存中,变成进程。 (3)、文件描述符文件描述符表示进程中打开了哪些文件。在文件描述符表中,每个元素代表一个打开的文件,表中对应的下标就是文件描述符,因此可以将其看作是顺序表。 2、操作系统是如何管理进程 (1)、描述进程计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。因此我们可以通过类/对象来描述这一特征。这样,每一个 PCB 对象,就代表着一个实实在在运行着的程序,也就是进程。 (2)、组织进程操作系统再通过某些数据结构,例如链表、二叉树等把每个进程的PCB给串起来,便于进行增删查改的操作。 四、进程调度(cpu分配)进程的调度是操作系统将CPU资源分配给各个进程。 以下属性便是为了实现进程调度: 1、状态状态描述了当前这个进程接下来应该怎么调度:就绪状态:随时可以去CPU上执行。 阻塞状态/睡眠状态:暂时不可以去CPU上执行。 2、优先级每个进程所优先分配到的时间和空间。 3、记账信息统计了每个进程,都分别执行了多久、执行了哪些指令以及排队等了多久。记账的目的是给进程调度提供信息。 4、上下文表示上次进程被调度出CPU的时候,当时程序的执行状态,下次进程上CPU的时候,就可以恢复之前的状态,然后继续往下执行。进程被调度出CPU之前,要把CPU中的所有的寄存器中的数据都给保存到内存中。 上下文也就相当于玩游戏时的存档,当退出游戏时保存进度,在下次打开游戏时可以继续从该处进行游戏。 注:为了便于讨论和理解,我们大部分的场景下假设是单CPU单核的计算机。操作系统对CPU资源的分配,采用的是时间模式 —— 不同的进程在不同的时间段去使用 CPU 资源。 五、内存管理(内存分配)操作系统对内存资源的分配,采用的是空间模式(不同进程使用内存中的不同区域,互相之间不会干扰)。 六、进程的虚拟空间地址 1、定义虚拟空间地址可以抽象为两个班级都有相同的学号,但是他们实际的所在的班级是不同的。 虚拟空间对于进程的作用在于“隔离性”,相比于线程来说进程之间不会相互影响,一个进程崩溃了也不会有影响其他的进程,每个进程都有这样的一份虚拟空间。 即使操作系统有这么多的进程,但同一时刻执行的进程不会很多。即使同一时刻执行了也不会用到进程虚拟空间所有的内存,只会显示真实使用的部分。 因为进程之间存在“隔离性”,所以想要多个进程配合工作,操作系统就提供了“进程间通信”,给进程之间提供一份公共资源,借助公共资源来通信。 2、进程通信进程是操作系统进行资源分配的最小单位,这意味着各个进程互相之间是无法感受到对方存在的。因此进程之间存在“隔离性”。但想要完成一个复杂的业务需求,往往需要通过多个进程配合来完成。因此进程之间就需要有进行“信息交换”的需求。进程间通信的需求就应运而生。 目前,主流操作系统提供的进程通信机制有如下: 管道共享内存文件网络信号量信号注:网络是一种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同一主机上的进程间进行通信。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |