目录
一、操作系统的认识
1、常见的操作系统:
2、操作系统的两个基本功能:
二、进程
1、什么是进程(Process):
2、进程的组成:
3、进程的并发和并行执行:
三、总结:
一、操作系统的认识
操作系统是⼀组做计算机资源管理的软件的统称。
1、常见的操作系统:
目前常见的操作系统有 Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。
· Windows 是常见的个人电脑的操作系统。
· Linux 是常见的服务器上运行的操作系统。
· Android 是常见的手机上运行的操作系统。
操作系统的定位
简单来说呢,操作系统就是「驱动程序」管理各种硬件设备所提供的api接口进行封装,将其包装成一个软件,方便程序员在代码实现中直接进行调用而省去了一步步去连接硬件接口的复杂工作。
比如:Java 中的JDK便是对硬件接口封装的一种形式。
2、操作系统的两个基本功能:
1)防止硬件被失控的应用程序滥用;
2)向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备;
操作系统通过几个基本的抽象概念(进程、虚拟存储器和文件)来实现这两个功能。
1)文件是对I/O设备的抽象;
2)虚拟存储器是对主存和磁盘的抽象;
3)进程是对处理器、主存和I/O设备的抽象。
二、进程
1、什么是进程(Process):
进程(Process)是程序在某个数据集合上的一次运行活动,也是
操作系统进行资源分配和保护的基本单位。(每个进程都占用独立的内存空间)
简单的说呢,进程就是程序的执行过程,对于程序来说,程序是静态的,其作为系统中一种资源是永远存在的。而进程是动态的,它是动态的产生,变化和消亡的,拥有其自己的生命周期。
举一个简单的例子:
使用B站的时候,同时打开多个页面,它们就对应着B站的多个进程,退出一个,就是杀死一个进程,但是当它们都进行杀死之后,那么B站这个程序就没了吗?当然不是,B站这个程序还是存储在存储器中的,除非你把这个程序从存储器中删除了(相当于是卸载程序)。
进程不仅包含正在运行的程序实体,它还包括这个运行的程序中占据的所有系统资源,比如说 CPU、内存、网络资源等。比如说,同样一个程序,同一时刻被两次运行了,那么他们就是两个独立的进程,这两个进程所占用的资源是相互独立的。
2、进程的组成:
从结构上看,进程实体是由程序段、数据段和进程控制块三部分组成的。
进程控制段(PCB):
每个进程有且仅有一个进程控制段。
一般包含:
1)pid(进程id):
进程的身份表示符,相当于是「身份证号」。
2)内存指针:
主要是标识了哪些内存是该进程可以使用的空间。
3)文件描述符表:
进程很多时候都是要和硬盘这个硬件设备进行交互,硬盘上的数据都是以文件的形式来组织的,进程在读写文件的时候,就需要把这个文件信息保存到文件描述符表中,表的每一项就对应着打开了一个文件。
不只是和硬盘进行交互才需要的文件描述符表,因为操作系统中会把许多资源都抽象成文件来表示,不一定是硬盘的资源,比如说:网卡等。
4)进程状态:
进程存在很多的状态,其中两个最典型的是:
1、就绪状态(随叫随到):进程就可随时到CPU上进行执行。
2、阻塞状态:表示进程当前不适合到CPU上执行。
5)进程优先级:
进程存在很多,但是它们能去CPU上运行的机会不是均等的,有些进程就是要优先级更高,吃到更多的CPU资源。
6)进程的上下文:
当进行「进程调度」的时候,就需要使用到进程的上下文。进程在CPU中运行的过程中,CPU上的各种寄存器,就表示了当前进程运行的“中间状态”,也就是执行到了哪里。
保存上下文:把CPU中的这些寄存器的值,保存到内存中(PCB的对应属性中)
恢复上下文:把PCB中刚才保存的属性,填会到对应的寄存器中。
7)进程的记账信息:
就是统计功能,统计每个进程都在CPU上运行了多久,如果发现了,某个进程,很久都没有吃到CPU资源了,那么就会给这个进程倾斜一些资源(也就是不让其饿死)。
「进程调度」:就是一个进程执行一会之后,失去CPU,在过了一段时间之后这个进程又会回到CPU上继续执行,并会沿着上次执行的状态,继续往下执行(而非重头执行)。
进程的数据段:
一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最终结果,即进程运行过程中的各种数据。
进程的程序段:
程序段就是能被进程调度时程序调度到CPU执行的程序代码段(指令序列)。注意,程序可被多个进程共享,即多个进程可以运行同一个程序。
由上面的介绍可以知道,进程是操作系统的一个独立执行单位,它包含了程序的代码和数据,并且就有以下特点:
1)独立的地址空间:每个进程都存在独立的地址空间,不同的进程不会进行数据共享;
2)独立的资源:每个线程之间都存在独立的资源;
3)相互隔离:进程和进程之间相互隔离,一个进程出现问题不会影响到其他进程。
3、进程的并发和并行执行:
进程的并发性:
进程的并发性指的是多个进程在同一时间段内交替执行的能力。
比如:现在存在两个进程,进程1和进程2,它们同时在操作系统中执行,假设进程1先执行,在某个时间点的时候,进程1执行了一段时间后,会先暂停;之后进程2会进行执行一段时间后,也暂停;之后进程1会从上次暂停的地方继续执行,依此类推,直至结束。
虽然进程1和进程2在同一时间段交替执行,但它们不一定是同时完成的,因此可以说进程具有并发性。
如下图所示:
进程的并行:
进程的并行性指的是多个进程在同一时间段内同时执行的能力。
比如:假设进程1和进程2在某个时间点同时执行任务,它们都能够在同一时间段内完成任务。这种情况下,可以说进程具有并行性。
如下图所示:
三、总结:
在很久之前呢,是使用多进程来进行并发编程,但是对于进程来说是一个比较“重”的概念。创建进程和销毁进程呢开销是非常大的,尤其是频繁的创建销毁,所以现在引入了 线程的概念,线程也是轻量级进程,对于线程我们在下一篇中再见!!!
如果觉得文章不错,期待你的一键三连哦,让我们一起加油,顶峰相见!!!
目录
一、操作系统的认识
1、常见的操作系统:
2、操作系统的两个基本功能:
二、进程
1、什么是进程(Process):
2、进程的组成:
3、进程的并发和并行执行:
三、总结:
一、操作系统的认识
操作系统是⼀组做计算机资源管理的软件的统称。
1、常见的操作系统:
目前常见的操作系统有 Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。
· Windows 是常见的个人电脑的操作系统。
· Linux 是常见的服务器上运行的操作系统。
· Android 是常见的手机上运行的操作系统。
操作系统的定位
简单来说呢,操作系统就是「驱动程序」管理各种硬件设备所提供的api接口进行封装,将其包装成一个软件,方便程序员在代码实现中直接进行调用而省去了一步步去连接硬件接口的复杂工作。
比如:Java 中的JDK便是对硬件接口封装的一种形式。
2、操作系统的两个基本功能:
1)防止硬件被失控的应用程序滥用;
2)向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备;
操作系统通过几个基本的抽象概念(进程、虚拟存储器和文件)来实现这两个功能。
1)文件是对I/O设备的抽象;
2)虚拟存储器是对主存和磁盘的抽象;
3)进程是对处理器、主存和I/O设备的抽象。
二、进程
1、什么是进程(Process):
进程(Process)是程序在某个数据集合上的一次运行活动,也是
操作系统进行资源分配和保护的基本单位。(每个进程都占用独立的内存空间)
简单的说呢,进程就是程序的执行过程,对于程序来说,程序是静态的,其作为系统中一种资源是永远存在的。而进程是动态的,它是动态的产生,变化和消亡的,拥有其自己的生命周期。
举一个简单的例子:
使用B站的时候,同时打开多个页面,它们就对应着B站的多个进程,退出一个,就是杀死一个进程,但是当它们都进行杀死之后,那么B站这个程序就没了吗?当然不是,B站这个程序还是存储在存储器中的,除非你把这个程序从存储器中删除了(相当于是卸载程序)。
进程不仅包含正在运行的程序实体,它还包括这个运行的程序中占据的所有系统资源,比如说 CPU、内存、网络资源等。比如说,同样一个程序,同一时刻被两次运行了,那么他们就是两个独立的进程,这两个进程所占用的资源是相互独立的。
2、进程的组成:
从结构上看,进程实体是由程序段、数据段和进程控制块三部分组成的。
进程控制段(PCB):
每个进程有且仅有一个进程控制段。
一般包含:
1)pid(进程id):
进程的身份表示符,相当于是「身份证号」。
2)内存指针:
主要是标识了哪些内存是该进程可以使用的空间。
3)文件描述符表:
进程很多时候都是要和硬盘这个硬件设备进行交互,硬盘上的数据都是以文件的形式来组织的,进程在读写文件的时候,就需要把这个文件信息保存到文件描述符表中,表的每一项就对应着打开了一个文件。
不只是和硬盘进行交互才需要的文件描述符表,因为操作系统中会把许多资源都抽象成文件来表示,不一定是硬盘的资源,比如说:网卡等。
4)进程状态:
进程存在很多的状态,其中两个最典型的是:
1、就绪状态(随叫随到):进程就可随时到CPU上进行执行。
2、阻塞状态:表示进程当前不适合到CPU上执行。
5)进程优先级:
进程存在很多,但是它们能去CPU上运行的机会不是均等的,有些进程就是要优先级更高,吃到更多的CPU资源。
6)进程的上下文:
当进行「进程调度」的时候,就需要使用到进程的上下文。进程在CPU中运行的过程中,CPU上的各种寄存器,就表示了当前进程运行的“中间状态”,也就是执行到了哪里。
保存上下文:把CPU中的这些寄存器的值,保存到内存中(PCB的对应属性中)
恢复上下文:把PCB中刚才保存的属性,填会到对应的寄存器中。
7)进程的记账信息:
就是统计功能,统计每个进程都在CPU上运行了多久,如果发现了,某个进程,很久都没有吃到CPU资源了,那么就会给这个进程倾斜一些资源(也就是不让其饿死)。
「进程调度」:就是一个进程执行一会之后,失去CPU,在过了一段时间之后这个进程又会回到CPU上继续执行,并会沿着上次执行的状态,继续往下执行(而非重头执行)。
进程的数据段:
一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最终结果,即进程运行过程中的各种数据。
进程的程序段:
程序段就是能被进程调度时程序调度到CPU执行的程序代码段(指令序列)。注意,程序可被多个进程共享,即多个进程可以运行同一个程序。
由上面的介绍可以知道,进程是操作系统的一个独立执行单位,它包含了程序的代码和数据,并且就有以下特点:
1)独立的地址空间:每个进程都存在独立的地址空间,不同的进程不会进行数据共享;
2)独立的资源:每个线程之间都存在独立的资源;
3)相互隔离:进程和进程之间相互隔离,一个进程出现问题不会影响到其他进程。
3、进程的并发和并行执行:
进程的并发性:
进程的并发性指的是多个进程在同一时间段内交替执行的能力。
比如:现在存在两个进程,进程1和进程2,它们同时在操作系统中执行,假设进程1先执行,在某个时间点的时候,进程1执行了一段时间后,会先暂停;之后进程2会进行执行一段时间后,也暂停;之后进程1会从上次暂停的地方继续执行,依此类推,直至结束。
虽然进程1和进程2在同一时间段交替执行,但它们不一定是同时完成的,因此可以说进程具有并发性。
如下图所示:
进程的并行:
进程的并行性指的是多个进程在同一时间段内同时执行的能力。
比如:假设进程1和进程2在某个时间点同时执行任务,它们都能够在同一时间段内完成任务。这种情况下,可以说进程具有并行性。
如下图所示:
三、总结:
在很久之前呢,是使用多进程来进行并发编程,但是对于进程来说是一个比较“重”的概念。创建进程和销毁进程呢开销是非常大的,尤其是频繁的创建销毁,所以现在引入了 线程的概念,线程也是轻量级进程,对于线程我们在下一篇中再见!!!
如果觉得文章不错,期待你的一键三连哦,让我们一起加油,顶峰相见!!!