操作系统——进程调度

进程是操作系统对运行程序的抽象,以PCB表示,包含PID、内存指针等信息。进程状态包括运行、就绪、阻塞。内存管理通过虚拟内存和MMU防止野指针问题。进程间通信用于协作,确保系统中进程安全交互。
摘要由CSDN通过智能技术生成

目录

一、进程

1.概念

​2.进程的管理

进程控制块抽象(PCB Process Control Block)

1.PID

 2.内存指针

3.文件描述符表

3.并行与并发

 二、进程调度属性

1.进程状态

1.运行

2.就绪

3.阻塞 

2.进程的优先级

3.上下文信息

4.进程的记账信息

三、进程的组织方式

四、内存分配(内存管理)

五、进程间通信 


一、进程

1.概念

进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程。 进程是操作系统分配内存资源的最小单位(基本单位)。进程是动态的可执行程序。
运行的程序在系统中都是以进程的形式存在。系统本身也是一个程序,需要多个进程。

 2.进程的管理

程序下载后在系统中是一个文件,当我们双击程序时,文件就被系统从硬盘中读取出来加载到内存中,然后系统就创建一个和该程序相对应的进程,这样程序就运行起来了。

进程控制块抽象(PCB Process Control Block)

相当于一个java类,对应到c语言中就是一个结构体。
每一个 PCB 对象,就代表着一个实实在在运行着的程序,也就是进程。

1.PID

相当于人的身份证号,在操作系统中是全局唯一的。

 2.内存指针

当程序运行时,操作系统从硬盘中读取程序文件,加载到内存里,那么就要在程序运行前给程序分配一块有效的内存空间,内存中的指令和数据最终被CPU执行和读取。

3.文件描述符表

当程序运行起来时需要访问一些文件资源,这时操作系统就负责给程序分配这些资源需要的每个文件,被称为文件描述符,多个文件描述符在一起组成文件描述符表,类似于集合。

默认每个程序会分配三个文件描述符:

  1. 标准输入:System.in
  2. 标准输出:System.out
  3. 标准错误:System.error

3.并行与并发

该cpu理论上可以支持八个进程同时进行 (真正意义上的同时执行---并行执行)

对于现代的CPU来讲,都是多核的,但是在多核之前的CPU都是单核。在单核CPU的机器上,可以打开多个程序,看似也是同时执行,其实操作系统里确实只运行着一个进程,是通过进程间的快速轮动,来实现看似同时运行的一个效果,这个现象就叫做并发执行。 

 

并行执行则是同时执行,操作系统可以同时运行着多个进程。

 

在JAVA中并不严格区分并发和并行,统一称为并发编程。

 二、进程调度属性

(进程调度的目的是为了让CPU资源得到充分的利用)

1.进程状态

1.运行

2.就绪

3.阻塞 

操作系统有一个专门阻塞队列来保存这些被阻塞的队列。等到阻塞完成后,把他们从队列中取出来变为就绪状态,继续参与CPU调试。

2.进程的优先级

哪个进程可以被CPU调度的机会多,哪个优先级就高,这个优先级可以通过代码控制。

3.上下文信息

执行某个进程时,要保存当前执行的位置,也就是存档。若下一次被重新调度回来执行时,要读取之前的存档信息,也就是读档。

4.进程的记账信息

类似于一个日志,进程执行到哪里了,就在CPU调度时记录下来,以便下次调度回CPU时从这个执行的位置继续执行。 

三、进程的组织方式

进程是通过一个双向链表来组织PCB:  

  1. 创建一个进程就是把对应的PCB加入到链表中;
  2. 销毁一个进程就是把对应的PCB从链表中删除;
  3. 查看所有进程就是遍历整个链表。

四、内存分配(内存管理)

 程序在运行的时候都会被操作系统分配内存(内存条、硬件设备)。

 在正常情况下,进程A是不会去访问进程B的内存空间的,但是如果发生突发情况(c++中的野指针问题),进程A访问进程B的内存空间,修改了进程B的数据,导致其数据不准确,甚至程序崩溃。

操作系统为了防止野指针的问题,就使用虚拟内存来规避这种现象。采用了内存管理单元(MMU)来处理这个虚拟内存的操作。

 MMU 把虚拟地址与真实地址做了一个映射,在物理地址申请,再给每个进程分配虚拟地址,一旦进程访问的地址越界,MMU直接报错,不被允许访问。这样做的目的就是将进程之间隔离开来,互相不受影响。

五、进程间通信
 

进程被隔离开后,多个进程之间就无法相互协作了,但是有些场景需要进程间相互合作,那么就引入了进程间通信的概念。

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 进程调度操作系统中重要的概念,它负责决定哪个进程在什么时候执行。操作系统通过使用调度算法来决定优先级和执行顺序,以最大程度地利用系统资源和提高系统性能。 调度算法是指确定进程优先级和执行顺序的具体方法。常见的调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、优先级调度、时间片轮转等。不同的调度算法具有不同的特点和适用场景。 在学习和掌握Windows进程控制时,需要了解以下几个方面: 首先,要了解Windows进程的基本概念和特点。Windows操作系统使用多线程的方式来实现进程,每个进程包含一个或多个线程。了解进程的创建、销毁、状态转换等基本操作。 其次,要掌握Windows进程调度的机制。Windows采用抢占式调度,优先级较高的进程可以抢占正在执行的进程资源。了解Windows调度器的工作原理和调度策略,以及如何设置进程优先级。 此外,要了解Windows提供的进程管理工具。Windows操作系统提供了多个实用工具,如任务管理器、进程监控器等,可以查看和管理系统中运行的进程。学习如何使用这些工具来查看进程的状态、资源使用情况等信息。 最后,需要学习Windows进程间通信(IPC)的机制。进程间通信是不同进程之间进行数据交换和共享资源的重要方式。了解Windows中的IPC机制,如管道、共享内存、消息队列等。 总之,理解操作系统进程调度的概念和调度算法,同时学习并掌握Windows进程控制,可以帮助我们更好地理解和应用操作系统的功能,提高系统资源的利用率和系统性能。 ### 回答2: 进程调度操作系统中的一种重要机制,它负责从就绪队列中选择合适的进程,并分配给CPU执行。调度算法是为了实现合理的进程调度而设计的一套规则和策略。 调度算法有许多种,常见的有先来先服务(FCFS)、最短作业优先(SJF)、轮转法(RR)和优先级调度等。FCFS是最简单的调度算法,按照进程到达时间的先后顺序进行调度。SJF算法根据进程的执行时间来选择最短的作业先执行。轮转法是将一个时间片分配给每个进程,当时间片用完后,将进程放到队列末尾,继续执行下一个进程。优先级调度算法根据进程的优先级来选择执行顺序。 在Windows操作系统中,进程控制是通过系统调用来实现的。可以通过创建进程、管理进程和终止进程等系统调用来实现进程的控制。Windows提供了一系列的API函数来进行进程控制,如CreateProcess、TerminateProcess和GetExitCodeProcess等。 学习并掌握Windows进程控制需要了解Windows进程的基本概念,如进程ID(PID)、进程优先级、进程状态等。同时需要了解相关的API函数的使用方式和参数含义。通过调用这些API函数,可以实现进程的创建、终止和切换,以及获取进程的状态和运行信息等。 总之,要理解操作系统中的进程调度概念和调度算法,需要学习相关的知识,并掌握Windows进程控制的基本操作方法,以便更好地进行进程调度和管理。 ### 回答3: 进程调度操作系统中的重要概念,指的是将多个处于就绪状态的进程按照一定的算法分配给CPU执行的过程。操作系统通过进程调度算法来决定进程的执行顺序,从而实现资源的合理利用和提高系统性能。 调度算法有多种,常见的包括先来先服务(FCFS)调度算法、短作业优先(SJF)调度算法、优先级调度算法和时间片轮转调度算法等。 先来先服务(FCFS)调度算法是最简单的一种调度算法,按照进程到达的顺序进行调度,无论进程执行时间有多长,都需要等待前面的进程执行完毕才能执行。 短作业优先(SJF)调度算法则根据进程的执行时间来进行调度,先调度执行时间短的进程,可以减少平均等待时间。 优先级调度算法通过为每个进程分配一个优先级,优先级高的进程优先执行。可以根据进程的特点、紧急程度等进行优先级的调整。 时间片轮转调度算法将CPU的执行时间分成固定大小的时间片,每个进程按顺序执行一个时间片,若在一个时间片内未执行完毕,则将其放入队列尾部继续等待调度。 学习和掌握Windows进程控制主要包括以下几个方面: 1. 进程创建与终止:学习如何使用WinAPI中的相关函数来创建和终止进程。 2. 进程同步与通信:了解进程间同步与通信的机制,如互斥量、信号量、事件等,掌握使用这些机制来实现进程间的同步与通信。 3. 进程优先级与调度:了解Windows进程优先级的概念和相关API,以及如何使用优先级来调度进程。 4. 多线程编程:学习如何创建和管理多线程,在多线程环境中处理进程相关的问题。 通过学习和掌握上述内容,可以更加深入地理解操作系统进程调度的概念和调度算法,并能够利用Windows提供的进程控制功能进行实际开发和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LAKURRAA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值