操作系统-作业管理

news/2024/10/24 8:27:50/

“作业”一词几乎对于每一个人并不陌生,上幼儿园时开始小孩就要写做作业,家长要辅导作业,上了大学依然在写作业。甚至工作多年也尝尝听到同事见互相调侃要交作业。更加诧异得是好些专业领域也有这么一词。作业究竟意味着什么,在我们所从事得计算机领域又意味着什么,是否需要去管理它?这篇文章将分享个人得理解。

作业是什么?

在计算机操作系统领域,"作业"是指用户提交给计算机系统进行处理的任务或程序。它可以是一个独立的计算任务、一个程序或一组相关的任务集合。作业通常由用户创建,并包含了需要计算机执行的指令、数据和其他必要的资源。用户可以将作业提交给***操作系统***,然后由操作系统进行作业管理和调度,分配系统资源,使作业能够在计算机系统中得到执行。

作业的特点可以包括以下几个方面:
1)独立性:作业通常是一个独立的计算任务,可以由用户单独定义和提交给计算机系统。作业之间可以相互独立,并且系统可以并行地处理多个作业。
2)可执行性:作业包含了计算机可以理解和执行的指令集合。这些指令描述了计算过程、算法和数据操作,以便计算机能够按照用户的意图执行任务。
3)资源需求:作业可能需要系统资源来完成执行,如处理器时间、内存空间、I/O设备等。作业的资源需求会影响系统的调度和资源分配。
4)任务相关性:在某些情况下,一组相关的任务可以被组织成一个作业。这些任务之间可能需要进行通信、数据共享或协同操作。

计算机操作系统如何管理作业?

操作系统中,作业管理是指操作系统对待执行的作业(任务)进行组织、调度和控制的过程。作业管理在多道程序设计环境下起着重要的作用,它确保系统资源的有效利用,并通过***合理的作业调度策略***提高系统的吞吐量和响应时间。
以下是操作系统中的一些关键方面和功能,涉及作业管理:

1)作业提交:作业管理开始于用户将作业提交给操作系统。这涉及将用户的作业代码、数据和其他相关信息传递给操作系统,以便系统能够进行后续处理。
假设用户有一个名为"my_job"的作业文件,它是一个可执行的程序或脚本。用户想要将该作业提交给作业调度器以在系统中运行。
用户可以打开终端,并使用命令行界面执行以下命令:

submit_job --file=/path/to/my_job --name=my_job --priority=high

在这个例子中,用户使用了"submit_job"命令(这是一个虚拟的命令,实际操作系统可能有不同的命令或工具),并提供了以下参数:

  • --file=/path/to/my_job:指定作业文件的路径。用户需要提供作业文件的准确路径,以便作业调度器能够找到它。

  • --name=my_job:给作业指定一个名称。这个名称可以是用户自定义的任意字符串,用于标识作业。

  • --priority=high:设置作业的优先级。这个参数可以用于指定作业在调度时的优先级,例如"high"表示高优先级。

除了上述示例中的参数,还可以根据操作系统和作业调度系统的不同,提供其他相关参数,例如作业的资源需求、预计运行时间等。

提交作业后,作业调度器将根据其内部的调度策略和系统资源的可用性,决定何时运行该作业。作业执行完毕后,其输出和结果将被保存到指定的位置,供用户查看和使用。

2)作业调度:作业调度是指决定哪个作业将获得处理器的使用权。它基于不同的调度算法,调度算法的选择可以根据系统的特点和需求来确定。操作系统中的作业调度算法是用于决定在多道批处理系统中哪个作业将被选择并分配给处理器运行的算法。下面是几个常见的作业调度算法及其示例:

  • 先来先服务(FCFS)调度算法:
    • 描述:按照作业提交的先后顺序进行调度,先提交的作业先执行。
    • 示例:假设有三个作业 A、B 和 C,按照顺序提交。如果调度算法采用 FCFS,那么作业 A 将首先执行,然后是作业 B,最后是作业 C。
  • 短作业优先(SJF)调度算法:
    • 描述:选择估计执行时间最短的作业先执行,以最小化平均等待时间。
    • 示例:假设有三个作业 A、B 和 C,它们的估计执行时间分别为 5、2 和 8。使用 SJF 调度算法,作业 B 将首先执行,然后是作业 A,最后是作业 C。
  • 优先级调度算法:
    • 描述:为每个作业分配一个优先级,并按照优先级的顺序进行调度。可以采用静态优先级(优先级提前确定)或动态优先级(根据作业的特性和状态进行调整)。
    • 示例:假设有三个作业 A、B 和 C,它们的优先级分别为 2、1 和 3。使用优先级调度算法,作业 C 将首先执行,然后是作业 A,最后是作业 B。
  • 时间片轮转调度算法:
    • 描述:将处理器时间划分为固定大小的时间片,并按照轮转的方式进行调度。每个作业在一个时间片内执行,然后切换到下一个作业。
    • 示例:假设有三个作业 A、B 和 C,时间片大小为 3。开始时,作业 A 开始执行,经过 3 个时间单位后切换到作业 B,再经过 3 个时间单位后切换到作业 C,然后再回到作业 A。
      3)作业并发控制:在多道程序设计环境下,可能有多个作业同时竞争系统资源。作业管理需要确保不同作业之间的资源分配和共享,避免冲突和死锁的发生。这包括对共享资源的管理和调度,如内存、I/O设备等。
      4)作业间通信:在某些情况下,作业之间需要进行通信和协作。作业管理负责提供相应的机制和接口,以实现作业之间的数据传递、消息传递和同步操作等。
      5)作业状态管理:作业管理跟踪和管理每个作业的状态。常见的作业状态包括就绪状态、运行状态、阻塞状态和完成状态。操作系统需要记录和更新作业的状态,以便在合适的时间进行作业调度和资源分配。
      6)错误处理和故障恢复:作业管理需要处理作业执行过程中可能发生的错误和故障情况。负责检测和处理错误,恢复系统到正常状态,并可能采取相应的措施,如重启作业、回滚操作等。

作业与常说的进程、线程有啥关系?

假设有一个作业调度程序,负责执行多个作业。每个作业可以是一个独立的任务,例如图像处理、文件压缩等。这个作业调度程序可以利用进程和线程来管理和执行这些作业。
进程(Process):作业调度程序本身可以是一个进程,它运行在计算机中并负责管理作业的调度和执行。该进程可以拥有自己的内存空间和系统资源。
线程(Thread):作业调度程序可以创建多个线程来并行执行作业。每个线程可以负责执行一个或多个作业。通过使用线程,作业调度程序可以同时处理多个作业,提高整体的效率和吞吐量。
作业调度程序的工作流程可以如下:
1)创建进程:当作业调度程序启动时,它创建一个进程来承载自身,并分配所需的系统资源。
2)创建线程:作业调度程序可以根据需要创建多个线程,每个线程都负责执行一个或多个作业。这些线程可以并行执行,提高作业的处理速度。
3)作业调度:作业调度程序根据预定的策略和优先级,从作业队列中选择要执行的作业。它将选中的作业分配给一个可用的线程来执行。
4)作业执行:每个线程独立执行分配给它的作业。线程可以使用自己的资源和执行环境来处理作业的要求。
5)完成作业:当一个作业执行完成后,线程将报告其执行结果给作业调度程序。作业调度程序可以将结果记录下来或根据需要进行进一步的处理。


http://www.ppmy.cn/news/421220.html

相关文章

实验篇(7.2) 15. 站对站安全隧道 - 多条隧道聚合(FortiGate-IPsec) ❀ 远程访问

【简介】虽然隧道冗余可以解决连接问题,但是当大量数据访问或要求访问不能中断时,隧道冗余就力不从心了。这种情况就要用到隧道聚合。但是对宽带的要求也高了,双端都至少需要二条宽带。 实验要求与环境 OldMei集团深圳总部部署了域服务器和ER…

低代码靠谱吗?实操一遍就知道了

一、前言 最近一段时间,“低代码”概念特别流行,有些人特别推崇它,也有些人对此不屑一顾。 推崇它的人认为,它有很多优点,比如说能够降低开发周期,提高系统开发效率,降低开发成本,学…

mysql学习整理

DML语言 DML语言 : 数据操作语言 数据库意义 : 数据存储、数据管理 用于操作数据库对象中所包含的数据 包括 : INSERT (添加数据语句)UPDATE (更新数据语句)DELETE(删除外键) Insert 语法 添加单条数据 语法: INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES(值1,值2,值…

git config --global core.autocrlf input (在检出代码时不自动转换行尾,在提交代码时自动将行尾转换为LF)

文章目录 git config --global core.autocrlf inputcore.autocrlf三种配置项(true、input、false)补充:git的检出(Checkout)和提交(Commit)git pull已包含检出(checkout操作&#xf…

常用API(Object,Objects,StringBuilder,Math,System,BigDecimal)

1:Object类 1:Object类的作用: 一个类要么默认继承Object类,要么间接继承了Object类,Object类是Java中的祖宗类。Object类的方法是一切子类都可以直接使用的,所以我们要学习Object类的方法。 2&#xff…

计算机未来五年最吃香的4个职位,对女生超级友好!

今年计算机毕业的学弟学妹对于找工作感觉到非常焦虑,不知道该哪个方向就业才有出路。很多同学感觉在学校好像什么都学了,又好像什么都没学到,先不说企业会不会招,自己就连投简历的勇气都没有,生怕大把的简历投出去就石…

Wallpaper壁纸提取得到tex文件,tex文件转图像,tex文件转png,tex文件提取壁纸,Wallpaper壁纸提取无法得到图像文件,RePKG-GUI提取得到tex文件而不是图像的解决方法

之前我们介绍了如何利用RePKG-GUI工具从Wallpaper壁纸的sence.pkg文件提取壁纸,但最近在提取壁纸时,我发现,有一小部分壁纸无法利用RePKG-GUI工具提取得到图像文件,而是会得到一个.tex类型的文件。 Bug是怎么产生的暂时不知道&am…

png显示黑色背景

问题:word打印的二维码png图片不能识别,画图板里面黑色的却可以识别,估计word能打bmp, 不能打png,然后测试 使用cimage加载png图片的时候,画到单文档里面变黑了,然后百度,把修改好的代码写到下面…