Top 10 List of Week 06
-
Process Concept
A process is a program in execution, and the status of the current activity of a process is represented by the program counter, as well as other registers. -
4 General States of Process
There are four general states of aprocess: (1) ready, (2) running, (3) waiting, and (4) terminated. -
The Role of Process Scheduling
Process Scheduling is an OS task that schedules processes of different states like ready, waiting, and running. Process scheduling allows OS to allocate a time interval of CPU execution for each process. Another important reason for using a process scheduling system is that it keeps the CPU busy all the time. This allows you to get the minimum response time for programs. -
fork() system calls
This is a youtube playlist contained of plenty videos explained the fork() introcution to related QnA. -
pipe() system calls
This is a youtube video that explained communicating between processes in C using pipes. -
Client-Server Communication: Socket
A Unix Socket is used in a client-server application framework. A server is a process that performs some functions on request from a client. Most of the application-level protocols like FTP, SMTP, and POP3 make use of sockets to establish connection between client and server and then for exchanging data. More reading about Socket here. -
Thread VS Multithreaded
Single threaded processes contain the execution of instructions in a single sequence. In other words, one command is processes at a time.The opposite of single threaded processes are multithreaded processes. These processes allow the execution of multiple parts of a program at the same time. These are lightweight processes available within the process. - Benefits of Multithreaded Processes
- All the threads of a process share its resources such as memory, data, files etc. A single application can have different threads within the same address space using resource sharing.
- It is more economical to use threads as they share the process resources. Comparatively, it is more expensive and time consuming to create processes as they require more memory and resources.
- Program responsiveness allows a program to run even if part of it is blocked using multithreading. This can also be done if the process is performing a lengthy operation.
- In a multiprocessor architecture, each thread can run on a different processor in parallel using multithreading. This increases concurrency of the system. This is in direct contrast to a single processor system, where only one process or thread can run on a processor at a time.
-
Concurrency
This is a youtube video by Mike Swift that covered explanation about the uses of concurrency, sources of concurrency, scheduler’s role in concurrency, real implementation: examples and strategies of concurrency, and the benign uses of concurrency. - Parallel Computing Parallel computing is a type of computation where many calculations or the execution of processes are carried out simultaneously. This is a 3-minutes video explained about parallel computing to help us understand what parallelism is.