操作系统——进程

操作系统(OS)的概念:一个基本的程序集合

其中包括:
(1)内核(进程管理,内存管理,文件管理,驱动管理)
(2)其他程序(例如函数库,shell程序等)

OS是一款纯正的"搞管理"的软件

(1)可以是对硬件的管理也可以是对软件的管理 (2)可以是对内的管理(对进程),也可以是一种对外业务的管理(对硬件资源操作)

进程

首先什么是进程?

对操作系统来说,一个任务就是一个进程
课本概念:程序的一个执行实例,正在执行的程序等
内核观点:担当分配系统资源(CPU、内存)的实体,具有动态特性

这里注意程序和进程的区别:

程序:在硬盘上静态的可执行文件(可执行的程序代码)
进程:程序运行起来后表现为进程,进程是系统分配资源

———————————————————————————————————————
在编写一个进程之后运行,即可任务管理器中查看到该进程,如下:

public static void main(String[] args) throws Throwable {
        Thread.sleep(99999);
    }

在这里插入图片描述
PID为进程的代号
PDI结构体来管理进程(包括进程的各种信息,如PDI进程名称、状态、占用资源)
———————————————————————————————————————
那么Java程序又是如何进行的呢?
在这里插入图片描述
有关时间片的认识

现在一般的操作系统都支持“多任务的操作系统,即可以同时运行多个任务
————————————————————————————————————————————————
操作系统的任务调度是采用时间片轮转的抢占式调度方式(一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行)
————————————————————————————————————————————————
而执行任务的这一小段时间就为时间片
————
任务正在执行的状态为运行态正处于时间片调度到的进程
任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务处于就绪态等待下一个属于它的时间片
系统调度进程:进程在运行态和就绪态之间转换

并发
CPU的执行效率非常高,时间片非常短,在各个任务之间快速切换,人的肉眼感知是进程同时执行(其实有CPU的时间片轮转调度),即我们所说的并发

并发与并行
并发多个进程一个CPU下采用时间片轮转的方式,在一段时间内,让多个进程都得以推进
——》(假同时,一个时间只有一个进程执行)
并行多个进程多个CPU下分别同时运行
——》(真同时,一个时间点,多个进程同时执行)

内核态与用户态?

内核态(核心态):操作系统内核作为直接控制硬件设备的底层软件,权限最高
用户态:用户程序的权限最低

如何理解内核态和用户态?
举个例子:一个人去银行办理业务,这个人自己进行填表,这就叫做用户态
————>
那么如果这个人通过窗口将表交给工作人员,让工作人员进行相关操作,这时对这个人来讲,就为陷入内核,工作人员在帮忙办理业务的状态即为内核态
这里注意用户态和内核态的相互转换比较耗时需要向系统申请

进程中的上下文
上下文简单来说就是一个环境,进程在时间片轮转切换时,由于每个进程的环境不同,就涉及到转换前后上下文环境的切换

即为一个进程在执行的时候的CPU的所有寄存器中的值、进程状态及堆栈上的内容

切换时要保存当前进程的所有状态,即保存当前进程的进程上下文
在这里插入图片描述
在这里插入图片描述
阻塞:进程不具备运行条件,正在等待某个事件完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值