JAVAEE(1)--(1)进程调度过程和原理

本文深入探讨了操作系统中的进程概念,指出进程是程序执行的抽象,通过进程控制块(PCB)进行管理。PCB包含进程ID、内存指针、文件描述符表和调度信息。区分了并行和并发的概念,并详细阐述了进程调度的过程,涉及状态、优先级、记账信息和上下文切换。此外,还介绍了Java中创建线程的方法和相关操作。
摘要由CSDN通过智能技术生成

本篇文章主要从进程的定义,进程的管理和进程的调度是如何进行的几个角度来对进程做出解释.
1.进程是什么?
言简意赅的讲进程就是跑起来的程序.每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的。进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。
2.进程如何控制?
进程主要通过进程控制块(PCB)来进行管理.PCB里面包含了:(1)进程的唯一标识pid也就是进程的id,(2)内存指针,指明了这个进程要执行的代码/指令存储在哪里,以及这个进程执行过程中依赖的数据都存储在哪里,(3)文件描述符表,进程每次打开一个文件,就会在文件描述符表上多增加一项.这个文件描述符表就可以视为一个数组,里面的每一个元素都是一个结构体,对应一个文件相关信息.(4)进程的调度信息.
此处还有两个比较容易混淆的概念:并行和并发.并行是,两个CPU核心,同时执行两个任务的代码.而并发是一个CPU核心,先执行一会任务1,再执行一会任务2…,再执行任务1,只要切换的够快,就好像多个任务同时执行.
3.进程调度
进程调度就是让有限的核心去尽可能的的多执行任务.进程调度的过程中涉及到的几个概念:
状态:描述当前这个进程接下来应该怎么调度.就绪状态:随时可以去CPU上执行.阻塞状态(睡眠状态):暂时不可以去CPU上执行;
优先级:先给谁分配以及分配多少的问题;
记账信息:统计了每个进程,都分别被执行了多久,分别执行了哪些指令.分别都排队等了多久;
上下文:表示上次进程被调度出CPU的时候,当时程序的转态,下次进程上CPU就可以恢复之前的状态,进程被调度出CPU 之前会把寄存器中的数据保存到内存中.
4.如何让创建线程?
Thread类是Java中对于系统提供多线程api进行封装,其构造方法主要是:创建线程(五种):继承Thread,实现Runnable,继承Thread(匿名内部类),实现Runnable(匿名内部类),lambda表达式;系统中创建线程 start;中断线程,核心思路让线程run执行完;等待线程 join ,使一个线程等待另一个线程执行完毕之后再执行;获取线程引用current Thread哪个线程调用这个方法,就获取哪个线程的Thread实例,休眠线程 sleep.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值