1
votes

My first question is about batch-job & CPU-bound task :

What are exactly the differences between a cpu-bound task and a batch job?

A batch job is a program that runs without interaction with the user, but so if a cpu-bound task isn't it ?


My second question is about uniprocessor scheduling :

Scheduling policies such as Round-Robin and Priority Scheduling are typically implemented for interactive workloads, why not for batch jobs ?

1
These are obsolete concepts. You CS course teaches you things that are not needed by professional developers.usr
my course is about operating systems specifically :pPhilippe
I think a task might also sleep (wait for some time event) or communicate over the network. Or over the ARPANET. Did they already have networks back when this course was developed? :)usr
well, I guess it's still relevant. Most systems have batch-like background tasks and CPU bursts can be modeled as batch jobs, without mentioning web servicesPhilippe

1 Answers

3
votes

In ye olde days, batch jobs were stacks of punch cards fed in through a reader. There were dedicated interactive system and dedicated batch systems.

Then crossovers developed. TSO (Time Sharing Option) was a never ending batch job that allowed user interaction with an underlying batch system.

Interactive systems developed batch queues. A batch queue could schedule jobs (controlled by a command script like JCL or DCL) in various ways. If you have ten jobs to run, you could set up the queue to let 1 or 2 (or more) run simultaneously within the queue so that you would not overload the system by having all run at once. You could also schedule them to run at certain times. If you had a 2-week molecular modeling task, your batch queue could turn it on a 7 PM and off at 8 AM before people started work.

Unix has never had anything more than rudimentary batch facilities.

What are exactly the differences between a cpu-bound task and a batch job?

They are two completely different things. A batch job may or may not be cpu-bound. A cpu-bound task may or may not be a batch job.

A batch job is a program that runs without interaction with the user, but so if a cpu-bound task isn't it ?

A batch job never interacts with the user. All command input goes in at the start. A non-batch job might become cpu-boud at one point, then interact with the user at a later point.