1
00:00:03,480 --> 00:00:05,820
Here is a quick outline of this unit.

2
00:00:05,820 --> 00:00:09,060
We'll start our discussion by processes.

3
00:00:09,060 --> 00:00:10,260
What is the process?

4
00:00:10,260 --> 00:00:12,960
What are various states of a process?

5
00:00:13,260 --> 00:00:18,270
How these processes are represented in the operating system with the help of process control blocks?

6
00:00:18,270 --> 00:00:21,270
What is the context switch and so forth?

7
00:00:21,900 --> 00:00:24,660
Next, we'll talk about the scheduling basics here.

8
00:00:24,660 --> 00:00:31,050
We'll see what is CP scheduling, what is what are Iowan processes, what are CPU bound processes?

9
00:00:31,320 --> 00:00:36,060
We'll also talk about preempt you and non preempt you scheduling algorithms.

10
00:00:36,480 --> 00:00:40,290
So essentially we'll work on defining these terms here.

11
00:00:41,220 --> 00:00:46,020
After that, we'll dive into discussing some specific CPU scheduling algorithms.

12
00:00:46,110 --> 00:00:50,730
So for example, first come, first serve shortage of first priority scheduling, round robin scheduling

13
00:00:50,730 --> 00:00:51,780
and some more.

14
00:00:52,710 --> 00:00:56,670
Next, we'll see how programs can create multiple child processes.

15
00:00:56,670 --> 00:01:02,940
So, for example, in context of UNIX, we'll see how processes can use the fork system, call for creating

16
00:01:02,940 --> 00:01:05,700
multiple child processes and how this is useful.

17
00:01:06,390 --> 00:01:09,720
Finally, we'll briefly talk about process communication.

18
00:01:09,990 --> 00:01:15,930
So essentially here we will see how how operating processes can communicate and collaborate with each

19
00:01:15,930 --> 00:01:16,350
other.

20
00:01:17,960 --> 00:01:23,330
So let's begin with the conception of a program, the program creation itself.

21
00:01:23,730 --> 00:01:25,650
How a program is created.

22
00:01:25,800 --> 00:01:30,290
If you think about it, every program is is trying to solve a problem.

23
00:01:30,300 --> 00:01:34,260
It is written to help us solve some computation problem.

24
00:01:35,090 --> 00:01:35,760
Awesome.

25
00:01:35,760 --> 00:01:37,100
Some real world problem.

26
00:01:38,090 --> 00:01:41,900
Every program is conceived as a problem specification.

27
00:01:42,170 --> 00:01:48,080
So there is a problem that we are trying to solve, which is specified in this problem specification.

28
00:01:48,740 --> 00:01:54,890
A human programmer looks at this problem specification and then comes up with an algorithm to solve

29
00:01:54,890 --> 00:01:55,640
this problem.

30
00:01:56,240 --> 00:02:03,380
The programmer then uses an editor and a programming language of his or her choice to implement this

31
00:02:03,380 --> 00:02:05,510
algorithm into a program.

32
00:02:06,020 --> 00:02:10,010
For now, we are assuming that the language of choice is C or C++.

33
00:02:10,660 --> 00:02:15,820
Once the program is ready, once the coding is done, the algorithm has been quoted in, let's say,

34
00:02:15,820 --> 00:02:24,640
C or C++, we'll use a compiler to translate the C C++ code into object files and some partial binaries.

35
00:02:25,090 --> 00:02:31,000
Next, using a linker program, we'll link together these partial binaries or object files and any other

36
00:02:31,000 --> 00:02:33,010
libraries that our program might be using.

37
00:02:33,640 --> 00:02:37,510
So we'll link together all of these files to create a single executable binary file.

38
00:02:38,350 --> 00:02:42,760
The executable binary file is typically a static file sitting on the hard disk.

39
00:02:43,030 --> 00:02:48,910
When the user, let's say, double clicks on this file, a loader would load this executable binary

40
00:02:48,910 --> 00:02:51,910
from the hard disk and bring it into the main memory.

41
00:02:53,120 --> 00:02:54,170
For execution.

