👨‍💻
Cracking-Interview
  • Data Structures and Algorithms
  • Arrays
    • 1. Two Sums
    • 2. Rotate Array
    • 3.Remove Duplicates from sorted array
    • 4.Merge Two Sorted Array
    • 5.Majority Element
    • 6.Rotate Image
    • 7.Merge Intervals
    • 8.Increasing Triplet Subsequence
    • 9.Set Matrix Zeroes
    • 10.Product of Array Except Self
    • 11.Container With Most Water
    • 12.Next Permutation
    • 13.Next Greater Element III
    • 14.Largest Number
    • 15.Candy
    • 16.Shortest Unsorted Continuous Subarray
    • 17.Sort Colors(Sort array of 0, 1, 2)
    • 18.Queue Reconstruction by Height
    • 19.Task Scheduler
    • 20.Trapping Rain Water
    • 21.Search a 2D Matrix II
    • 22. Spiral Matrix
    • 23.Median of Two Sorted Arrays
    • 24.Count inversion of an array
    • 25. Reverse Pairs
    • 26. Count Servers that Communicate
    • 27. 3Sum
    • 28. 4Sum
    • 29. Game of Life
    • 30. Sort the Matrix Diagonally
    • 31. Push Dominoes
    • 32. Corporate Flight Bookings
    • 33. Rotating the Box
    • 34. Interval List Intersections
    • 35. Insert Interval
    • 36. Minimum Moves to Equal Array Elements II
    • 37. Pairs of Songs With Total Durations Divisible by 60
    • 38. Remove Covered Intervals
    • Juggling Algorithm
    • Moore’s Voting Algorithm
    • Two Pointer Method
  • Linked List
    • 1.Odd-Even Linked List
    • 2.Add Two Numbers
    • 3. Insert in a Sorted List
    • 4.Rotate List
    • 5.Palindrome Linked List
    • 6.Point of insertion between two Linked List
    • 7.Delete Node in a Linked List
    • 8.Middle of the Linked List
    • 9.Linked List Cycle
    • 10. Swapping Nodes in a Linked List
    • 11.Swap Nodes in Pairs
    • 12.Merge Two Sorted Lists
    • 13.Reverse a Linked List
    • 14. Reverse Linked List II
    • 15.Copy List with Random Pointer
    • 16.Remove Duplicates from Sorted List
    • 17. Merge k Sorted Lists
    • 18. Remove Nth Node From End of List
    • 19. Sort List
    • 20. Reverse Nodes in k-Group
    • 21. Partition List
    • 22. Flattening a Linked List
    • Basic Implementation of Singly Linked List
    • Basic Implementation of Doubly Linked List
  • Strings
    • 1.Reverse Words in a String
    • 2. Is Subsequence
    • 3.Valid Anagram
    • 4.Add Binary
    • 5.Longest Common Prefix
    • 7.Valid Palindrome
    • 8.Implement strStr()
    • 9.String to Integer (atoi)
    • 10.Count and Say
    • 11.Longest Substring Without Repeating Characters
    • 12. Longest Substring with At Most K Distinct Characters
    • 13. Longest Substring with At Least K Repeating Characters
    • 14. Find All Anagrams in a String
    • 15. Permutation in String
    • 16. Maximum Number of Vowels in a Substring of Given Length
    • 17. Partition Labels
    • 18. Minimum Window Substring
    • 19. Compare Version Numbers
    • 20. Shortest Distance to a Character
    • 21. Count Number of Homogenous Substrings
    • 22. Remove Duplicate Letters
    • 23. Count Sorted Vowel Strings
    • 24. Get Equal Substrings Within Budget
    • 25. Sentence Similarity III
    • 26. Shifting Letters
    • 27. Longest Happy Prefix (imp)
    • 28. Sort Characters By Frequency
    • 29. String Compression
    • 30. Palindrome Pairs
    • 31. Shortest Palindrome(Imp)
    • 32. One Edit Distance
    • 33. Can Make Palindrome from Substring
    • 34. Greatest Common Divisor of Strings
    • KMP Algorithm for Pattern Searching
    • Rabin-Karp Algorithm for Pattern Searching
  • Binary Tree
    • Terminology and Formula
    • N-ary Tree
      • 1. N-ary Tree Preorder Traversal
      • 2. N-ary Tree Postorder Traversal
      • 3. N-ary Tree Level Order Traversal
    • Tree Traversals
      • 1.In-order Traversal
      • 2.Pre-order Traversal
      • 3.Post-order Traversal
      • 4.Level-order Traversal
      • 5.Vertical Order Traversal
      • 6. Binary Tree Level Order Traversal II
    • Problems Related to Binary Trees
      • 1.Maximum/Minimum Depth of Binary Tree
      • 2.Lowest Common Ancestor of a Binary Tree
      • 3.Symmetric Tree
      • 4.Path Sum
      • 5.Tree : Top View
      • 6. Diameter of Binary Tree
      • 7.Populating Next Right Pointers in Each Node
      • 8.Balanced Binary Tree
      • 9.Binary Tree Zigzag Level Order Traversal
      • 10.Invert Binary Tree
      • 11.Binary Tree Right Side View
      • 12.Validate Binary Tree Nodes
      • 13.Merge Two Binary Trees
      • 14.Flatten Binary Tree to Linked List
      • 15. Construct Binary Tree from Preorder and Inorder Traversal
      • 16. Construct Binary Tree from Inorder and Postorder Traversal
      • 17. Binary Tree Maximum Path Sum
      • 18. Sum Root to Leaf Numbers
      • 19. Subtree of Another Tree
      • 20. Even Odd Tree
      • 21. Delete Nodes And Return Forest
      • 22. Maximum Binary Tree
      • 23. Linked List in Binary Tree
      • 24. Longest Univalue Path
      • 25. Sum of Distances in Tree
      • 26. Distribute Coins in Binary Tree
      • 27. Find Duplicate Subtrees
      • 28. Serialize and Deserialize BST
      • 29. Serialize and Deserialize Binary Tree
      • 30. Path Sum III
      • 31. Delete Leaves With a Given Value
      • 32. All Possible Full Binary Trees
      • 33. All Nodes Distance K in Binary Tree
      • 34. Maximum Width of Binary Tree
  • Stack and Queue
    • Problems
      • 1.Min Stack
      • 2. Max Stack
      • 3.Valid Parentheses
      • 4.Evaluate Reverse Polish Notation
      • 5.Infix And Prefix and Postfix Conversions
      • 6.Next Greater Element I
      • 7.Next Greater Element II
      • 8.Sliding Window Maximum
      • 9.Gas Station (Circular Tour Problem)
      • 10.Daily Temperatures
      • 11.Decode String
      • 12. Largest Rectangle in Histogram
      • 13. Maximal Rectangle
      • 14. Minimum Remove to Make Valid Parentheses
      • 15. Map of Highest Peak
      • 16. Longest Valid Parentheses
      • 17. Online Stock Span
      • 18. Score of Parentheses
      • 19. Remove K Digits(imp)
      • 20. Design a Stack With Increment Operation
      • 21. Final Prices With a Special Discount in a Shop
      • 22. Valid Parenthesis String
      • 23. Reveal Cards In Increasing Order
      • 24. Remove All Adjacent Duplicates In String
      • 25. Number of Visible People in a Queue
      • 26.Number following a pattern
    • Implementation
      • Implementation of Queue
      • Implementation of Stack
      • Implementation of Circular Queue
      • Implement Queue using Stacks
      • Implement Stack using Queues
  • Hash Table
    • Designing and Definitions
      • Techniques of hashing and collision resolution
      • Design HashSet
      • Design HashMap
    • Problems
      • 1.Intersection of Two Arrays
      • 2.Happy Number
      • 3.Contains Duplicate
      • 4.Find the Duplicate Number
      • 5. Find All Duplicates in an Array
      • 6. Isomorphic Strings
      • 7. Group Anagrams
      • 8. Single Number
      • 9.Valid Sudoku
      • 10.Jewels and Stones
      • 11.First Missing Positive
      • 12. LRU Cache (V.IMP)
      • 13. Encode and Decode TinyURL
      • 14. Alphabet Board Path
  • Binary Search
    • Template I
      • Basic Binary Search
      • 1.Search in a Sorted Rotated Array
      • 5.Sqrt(x)
    • Template II
      • 2.Find Minimum in Rotated Sorted Array
    • Template III
      • 3.Find Peak Element
      • 4. Find First and Last Position of Element in Sorted Array
  • Binary Search Tree
    • 1.Is This a Binary Search Tree
    • 2.Search in a Binary Search Tree
    • 3.Insert into a Binary Search Tree
    • 4.Delete Node in a BST
    • 5.Lowest Common Ancestor of a Binary Search Tree
    • 6.Construct Binary Search Tree from Preorder Traversal
    • 7.Convert Sorted Array to Binary Search Tree
    • 8. Convert Sorted List to Binary Search Tree
    • 9.Kth Smallest Element in a BST
    • 10.Trim a Binary Search Tree
    • 11.Two Sum IV - Input is a BST
    • 12. Binary Search Tree to Greater Sum Tree / Greater Tree
    • 13. Balance a Binary Search Tree
    • 14. Binary Search Tree Iterator
    • 15. Unique Binary Search Trees
    • 16. Unique Binary Search Trees II
    • 17. Inorder Successor in BST
  • Bit manipulation
    • Bitwise Operations
    • 1.Reverse Bits
    • 2.Counting Bits
    • 3.Number of 1 Bits
    • 4.Hamming Distance
    • 5. Power of Two
    • 6. Complement of Base 10 Integer
  • Graph
    • 1.Maximum number of edges to be removed to contain exactly K connected components in the Graph
    • 2. Social Networking Graph
    • 3.The Flight Plan
    • 4.Is it a tree?
    • 5.Possible Bipartition
    • 6.Longest path in an undirected tree
    • 7.Keys and Rooms
    • 8.Is Graph Bipartite?
    • 9.Number of Islands
    • 10. Number of Provinces
    • 11.Surrounded Regions
    • 12. All Paths From Source to Target
    • 13.Word Ladder
    • 14.Rotting Oranges
    • 15.Course Schedule
    • 16.Course Schedule II
    • 17. Minimum Number of Vertices to Reach All Nodes
    • 18.Network Delay Time
    • 19. 01 Matrix
    • 20. Cheapest Flights Within K Stops
    • 21. Critical Connections in a Network
    • 22.Word Search
    • 23. Minimum Time to Collect All Apples in a Tree
    • 24. Time Needed to Inform All Employees
    • 25. As Far from Land as Possible
    • 26. Clone Graph
    • 27. Min Cost to Connect All Points
    • 28. Find the City With the Smallest Number of Neighbors at a Threshold Distance
    • 29. Number of Operations to Make Network Connected
    • 30. Open the Lock
    • 31. Word Search II
    • 32. Number of Ways to Arrive at Destination
    • 33. Knight On Chess Board
    • 34. Shortest Bridge
    • 35. Pacific Atlantic Water Flow
    • 36. Making A Large Island
    • 37. Path with Maximum Probability
    • Graph Algorithms
      • 1.DFS
      • 2.BFS
      • 3.Prim's MST
      • 4.Kruskal (MST)
      • 5.Dijkstra’s Algorithm(Single Source Shortest Path)
      • 6. Floyd Warshall's Algorithm(All Pair Sortest Path)
      • 7. Topological Sort
      • 8. Find if the given edge is a bridge in graph.
  • Disjoint Sets(Union-Find)
    • 1.Implementation of union find
    • 2.Social Network Community
    • 3. Graph Connectivity With Threshold
    • 4. Redundant Connection
    • 5. Smallest String With Swaps
    • 6. Accounts Merge
  • Heap and Priority Queue
    • Concepts of Heap
      • Building Max Heap
    • 1.Kth Largest Element in an Array
    • 2.Kth Largest Element in a Stream
    • 3.Top K Frequent Elements
    • 4.Kth Smallest Element in a Sorted Matrix
    • 5. Find Kth Largest XOR Coordinate Value
    • 6. Top K Frequent Words
    • 7. Find Median from Data Stream
    • 8. Maximum Average Pass Ratio
    • 9. Longest Happy String
    • 10. K Closest Points to Origin
    • 11. Reorganize String
    • 12. Find the Kth Largest Integer in the Array
    • 13. Smallest range in K lists
  • Trie
    • 1. Implement Trie (Prefix Tree)
    • 2. Replace Words
    • 3.Design Add and Search Words Data Structure
    • 4. Search Suggestions System
  • Dynamic Programming
    • 1.House Robber
    • 2.Climbing Stairs
    • 3.Longest Palindromic Substring
    • 4.Longest Palindromic Subsequence
    • 5.Best Time to Buy and Sell Stock
    • 6.Best Time to Buy and Sell Stock with Cooldown
    • 7.Unique Paths
    • 8.Minimum Path Sum
    • 9.Longest Increasing Subsequence
    • 10.Longest Common Subsequence
    • 11.Longest Consecutive Sequence
    • 12.Coin Change
    • 13.Coin Change 2
    • 14.Target Sum
    • 15.Partition Equal Subset Sum
    • 16. Last Stone Weight II
    • 17.Word Break
    • 18. Word Break II
    • 19.Burst Balloons
    • 20. Uncrossed Lines
    • 21. Wildcard Matching
    • 22. Maximal Square
    • 23. Perfect Squares
    • 24. Decode Ways
    • 25. Minimum Cost For Tickets
    • 26. Number of Dice Rolls With Target Sum
    • 27. Delete Operation for Two Strings
    • 28. Maximum Length of Repeated Subarray
    • 29. Longest String Chain
    • 30. Maximum Length of Pair Chain
    • 31. Minimum Falling Path Sum
    • 32. Predict the Winner
    • 33. Delete and Earn
    • 34. House Robber III
    • 35. Partition to K Equal Sum Subsets
    • 36. Different Ways to Add Parentheses
    • 37. Count Square Submatrices with All Ones
    • 38. 2 Keys Keyboard
    • 39. Palindrome Partitioning II
    • 40. Integer Break
    • 41.Cutting a Rod
    • 42. Number of Longest Increasing Subsequence
    • 43. Russian Doll Envelopes
    • 44. 0-1 Knapsack
    • 45. Interleaving String
    • 46. Edit Distance
    • 47. Minimum Insertion Steps to Make a String Palindrome
    • 48.Jump Game
    • 49. Shortest Common Supersequence
    • 50. Length of Longest Fibonacci Subsequence
    • 51. Maximum Alternating Subsequence Sum
    • 52. Palindromic Substrings
    • 53. Distinct Subsequences
    • 54. Best Team With No Conflicts
    • 55. Partition Array for Maximum Sum
    • 56. Ones and Zeroes
  • Greedy Algorithms
    • 1.Activity Selection
    • 2. N meetings in one room
    • 3.Minimum Platforms
    • 4. Car Pooling
    • 5. Maximum Population Year
    • 6.Meeting Rooms
    • 7. Equal Sum Arrays With Minimum Number of Operations
    • 8. Two City Scheduling
    • 9. Non-overlapping Intervals
    • 10. Minimum Number of Arrows to Burst Balloons
    • 11. Maximum Profit in Job Scheduling{IMP}
    • 12.Huffman Coding
    • 13. Minimum Cost Tree From Leaf Values
    • 14.Maximum Number of Events That Can Be Attended
    • 15. Video Stitching
    • 16. Minimum Number of Taps to Open to Water a Garden
  • Backtracking
    • 1.Subsets and Subset II
    • 2.Combinations
    • 3.Generate Parentheses
    • 4.Letter Combinations of a Phone Number
    • 5.Palindrome Partitioning
    • 6.Combination Sum and Combination Sum II
    • 7.Permutations
    • 8. Permutations II
    • 9. Letter Case Permutation
    • 10. Split a String Into the Max Number of Unique Substrings
    • 11. Path with Maximum Gold
    • 12. N-Queens
    • 13. N-Queens II
    • 14. Sudoku Solver
    • 15. Permutation Sequence
    • 16. Beautiful Arrangement
  • Sub Array and Sliding Window Problems
    • 1.Maximum Subarray Sum
    • 2.Maximum Product Subarray
    • 3.Maximum Sum Circular Subarray
    • 4. Maximum Absolute Sum of Any Subarray
    • 5. K-Concatenation Maximum Sum
    • 6.Subarray Sum Equals K
    • 7. Continuous Subarray Sum
    • 8. Contiguous Array
    • 9.Minimum Size Subarray Sum >=k (positive no)
    • 10. Max Subarray sum of positive no <= k
    • 11. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target
    • 12. Maximum Subarray Sum with One Deletion
    • 13. Shortest Subarray with Sum at Least K (Negative Numbers)
    • 14. Frequency of the Most Frequent Element
    • 15. Count Number of Nice Subarrays
    • 16. Binary Subarrays With Sum
    • 17.Number of Substrings Containing All Three Characters
    • 18. Find Two Non-overlapping Sub-arrays Each With Target Sum
    • 19. Maximum Points You Can Obtain from Cards
    • 20. Longest Repeating Character Replacement
    • 21. Subarrays with K Different Integers
    • 22. Replace the Substring for Balanced String
    • 23. Maximize the Confusion of an Exam / Max Consecutive Ones III
    • 24. Subarray Sums Divisible by K
  • Design
    • 1. Design Twitter
    • 2. Design Browser History
    • 3. Snapshot Array
  • Maths
    • Formula
    • 1.Count Prime
    • 2.Pascal's Triangle
    • 3.Extra Long Factorials
    • 4.Factorial Trailing Zeroes
    • 5.Excel Sheet Column Number
    • 6.HCF and LCM
    • 7. Fizz Buzz
    • 8. Rearrange an array so that arr[i] becomes arr[arr[i]]
    • 9. XOR Queries of a Subarray
    • 10. Find second largest element
  • Sorting-Algorithms
    • Merge Sort
    • Quick Sort
    • Heap Sort
    • Selection Sort
    • Bubble Sort
    • Insertion Sort
  • Expected Interview MCQ and Questions c++
  • Concepts in C++
  • System Design Questions
  • 💾DBMS
    • Introduction
    • RBMS
    • JOINS
    • SQL
  • 🖥️OS
    • OS and Its Types
    • Process Concept and Threads
    • Process Synchronization
    • Deadlock in Operating System
    • Memory Management
    • Imp Questions of OS for Interviews
  • 🚙OOPS
    • Introduction and Definitions
  • 📨COMPUTER-NETWORKS
    • OSI | TCP IP Model
    • Topology
    • Network Devices
    • IP Address
Powered by GitBook
On this page
  • 1. Difference between a Process and Program and Thread
  • 2. Process States:
  • 3. What does a process look like in memory?
  • 4. Process Table and Process Control Block (PCB)
  • 5. See Process Scheduling and Algorithms.
  • 6. Inter process Communications
  • 7. CPU Bound and I/O bound Process
  • 8. Process Schedulers in Operating System
  • 9. Thread in Operating System
  • 10. User Mode and Kernel Mode
  • 11. What are system calls in Operating System?
  • 12. API

Was this helpful?

  1. OS

Process Concept and Threads

PreviousOS and Its TypesNextProcess Synchronization

Last updated 3 years ago

Was this helpful?

1. Difference between a Process and Program and Thread

Program : Code which is written using any HLL like c++, java, python etc.

Process : A process can be defined as a program in execution. Or when a program is executed it is called as process

Thread: Unit of execution of a process is called as thread. One process can have one or more then one thread.

Thread is the segment of a process. A thread have 3 states: running, ready, and blocked.

2. Process States:

When a process is running it changes its states. Process state can be defined as the current activity of the process or what the process is currently doing.

States of a process are as following:

process-states
  • New (Create) - In this step, the process is about to be created/being created but not yet created, it is the program which is present in secondary memory that will be picked up by OS to create the process.

  • Ready - Ready to run not yet running. After the creation of a process, the process enters the ready state i.e. the process is loaded into the main memory. The process here is ready to run and is waiting to get the CPU time for its execution. I needs to be assigned to the processor.

  • Running - The process is being executed

  • Blocked or Waiting - Waiting for some event to occur like I/O operations or reception of a signal.

  • Terminated or Completed - Process is killed or Finished its execution

  • Suspend ready - Process that was initially in the ready state but were swapped out of main memory and placed onto external storage by scheduler are said to be in suspend ready state. The process will transition back to ready state whenever the process is again brought onto the main memory.

  • Suspend wait or suspend blocked - Similar to suspend ready but uses the process which was performing I/O operation and lack of main memory caused them to move to secondary memory. When work is finished it may go to suspend ready.

3. What does a process look like in memory?

Text Section:- A process is more than the program code or a code segment is known as Text Section. This section of memory contains the executable instructions of a program. It also contains constants, macros and it is read-only segment to prevent accidentally modification of an instruction. Stack:- The Stack contains the temporary data, such as function parameters, returns addresses, and local variables. Data Section:- Contains the global variable. Heap Section:- Dynamically allocated memory to process during its run time.

4. Process Table and Process Control Block (PCB)

PCB is used to represent a process in the Operating System.

A process control block (PCB) contains information about the process, i.e. registers, quantum, priority, etc. The process table is an array of PCB’s, that means logically contains a PCB for all of the current processes in the system.

  • Pointer :- It is a stack pointer which is required to be saved when the process is switched from one state to another to retain the current position of the process.

  • Process state :- It stores the respective state of the process.

  • Process number/PID:- Every process is assigned with a unique id known as process ID or PID which stores the process identifier.

  • Program counter :- It stores the counter which contains the address of the next instruction that is to be executed for the process.

  • Register :- These are the CPU registers which includes: accumulator, base, registers and general purpose registers.

  • Memory limits:- This field contains the information about memory management system used by operating system. This may include the page tables, segment tables etc.

  • Open files list :- This information includes the list of files opened for a process.

  • Miscellaneous accounting and status data :- Resources used by a process for its execution .This field includes information about the amount of CPU used, time constraints, jobs or process number, etc.

  • I/O status information: For example, devices allocated to the process, open files, etc

  • CPU scheduling information: For example, Priority (Different processes may have different priorities, for example a short process may be assigned a low priority in the shortest job first scheduling)

5. See Process Scheduling and Algorithms.

There are six popular process scheduling algorithms

  • First-Come, First-Served (FCFS) Scheduling

  • Shortest-Job-Next (SJN) Scheduling

  • Priority Scheduling

  • Shortest Remaining Time

  • Round Robin(RR) Scheduling

  • Multiple-Level Queues Scheduling

These algorithms are either non-preemptive or preemptive. Non-preemptive algorithms are designed so that once a process enters the running state, it cannot be preempted until it completes its allotted time Preemptive scheduling is based on priority where a scheduler may preempt a low priority running process anytime when a high priority process enters into a ready state.

Below are different time with respect to a process.

Arrival Time: Time at which the process arrives in the ready queue. Completion Time: Time at which process completes its execution. Burst Time: Time required by a process for CPU execution. Turn Around Time: Time Difference between completion time and arrival time. Turn Around Time = Completion Time – Arrival Time

Waiting Time(W.T): Time Difference between turn around time and burst time. Waiting Time = Turn Around Time – Burst Time

6. Inter process Communications

7. CPU Bound and I/O bound Process

A program is CPU bound if it would go faster if the CPU were faster, i.e. it spends the majority of its time simply using the CPU (doing calculations).

A program is I/O bound if it would go faster if the I/O subsystem was faster. Which exact I/O system is meant can vary; I typically associate it with disk, but of course networking or communication in general is common too. A program that looks through a huge file for some data might become I/O bound, since the bottleneck is then the reading of the data from disk (actually, this example is perhaps kind of old-fashioned these days with hundreds of MB/s coming in from SSDs).

8. Process Schedulers in Operating System

The process scheduling is the activity of the process manager that handles the removal of the running process from the CPU and the selection of another process on the basis of a particular strategy.

Process scheduling is an essential part of a Multiprogramming operating systems. Such operating systems allow more than one process to be loaded into the executable memory at a time and the loaded process shares the CPU using time multiplexing.

There are three types of process scheduler.

  1. Long Term or job scheduler : It brings the new process to the ‘Ready State’. It controls Degree of Multi-programming, i.e., number of process present in ready state at any point of time. It is important that the long-term scheduler make a careful selection of both IO and CPU bound process. IO bound tasks are which use much of their time in input and output operations while CPU bound processes are which spend their time on CPU. The job scheduler increases efficiency by maintaining a balance between the two.

  2. Short term or CPU scheduler : It is responsible for selecting one process from ready state for scheduling it on the running state. Note: Short-term scheduler only selects the process to schedule it doesn’t load the process on running. Here is when all the scheduling algorithms are used. The CPU scheduler is responsible for ensuring there is no starvation owing to high burst time processes. Dispatcher is responsible for loading the process selected by Short-term scheduler on the CPU (Ready to Running State) Context switching is done by dispatcher only. A dispatcher does the following:

    1. Switching context.

    2. Switching to user mode.

    3. Jumping to the proper location in the newly loaded program.

  3. Medium-term scheduler : It is responsible for suspending and resuming the process. It mainly does swapping (moving processes from main memory to disk and vice versa). It is helpful in maintaining a perfect balance between the I/O bound and the CPU bound. It reduces the degree of multiprogramming.

Context Switching The process of saving the context of one process(Running process) and loading the context of another process(Schedules process) is known as Context Switching. In simple terms, it is like loading and unloading the process from the running state to the ready state.

9. Thread in Operating System

What is a Thread? A thread is a path of execution within a process. A process can contain multiple threads. It is a basic unit of cpu utilization. A thread is also known as lightweight process

Resources like code, data, and files can be shared among all threads within a process. Note: stack and registers can’t be shared among the threads. Each thread has its own stack and registers.

Why Multithreading? The idea is to achieve parallelism by dividing a process into multiple threads. For example, in a browser, multiple tabs can be different threads. MS Word uses multiple threads: one thread to format the text, another thread to process inputs, etc. Process vs Thread? The primary difference is that threads within the same process run in a shared memory space, while processes run in separate memory spaces. Threads are not independent of one another like processes are, and as a result threads share with other threads their code section, data section, and OS resources (like open files and signals). But, like process, a thread has its own program counter (PC), register set, and stack space. Advantages of Thread over Process 1. Responsiveness: If the process is divided into multiple threads, if one thread completes its execution, then its output can be immediately returned.

2. Faster context switch: Context switch time between threads is lower compared to process context switch. Process context switching requires more overhead from the CPU.

3. Effective utilization of multiprocessor system: If we have multiple threads in a single process, then we can schedule multiple threads on multiple processor. This will make process execution faster.

4. Resource sharing: Resources like code, data, and files can be shared among all threads within a process. Note: stack and registers can’t be shared among the threads. Each thread has its own stack and registers.

5. Communication: Communication between multiple threads is easier, as the threads shares common address space. while in process we have to follow some specific communication technique for communication between two process.

10. User Mode and Kernel Mode

A computer operates in two modes which are user mode and kernel mode. When the computer is running application software, it is in user mode. After the application software request for hardware, the computer enters kernel mode.

11. What are system calls in Operating System?

The interface between a process and an operating system is provided by system calls. In general, system calls are available as assembly language instructions. System calls are usually made when a process in user mode requires access to a resource. Then it requests the kernel to provide the resource via a system call.

A figure representing the execution of the system call is given as follows −

Then the system call is executed on a priority basis in the kernel mode. After the execution of the system call, the control returns to the user mode and execution of user processes can be resumed.

In general, system calls are required in the following situations −

  • If a file system requires the creation or deletion of files. Reading and writing from files also require a system call.

  • Creation and management of new processes.

  • Network connections also require system calls. This includes sending and receiving packets.

  • Access to a hardware devices such as a printer, scanner etc. requires a system call.

  • These system calls handle information and its transfer between the operating system and the user program.

Types of System Calls

Windows

Linux

Process Control

CreateProcess() ExitProcess() WaitForSingleObject()

fork() exit() wait()

File Management

CreateFile() ReadFile() WriteFile() CloseHandle()

open() read() write() close()

Device Management

SetConsoleMode() ReadConsole() WriteConsole()

ioctl() read() write()

Information Maintenance

GetCurrentProcessID() SetTimer() Sleep()

getpid() alarm() sleep()

Communication

CreatePipe() CreateFileMapping() MapViewOfFile()

pipe() shmget() mmap()

12. API

An API is a set of commands, functions, protocols, and objects that programmers can use to create software or interact with an external system. It provides developers with standard commands for performing common operations so they do not have to write the code from scratch.

APIs are available for both desktop and mobile operating systems. The Windows API, for example, provides developers with user interface controls and elements, such as windows, scroll bars, and dialog boxes. It also provides commands for accessing the file system and performing file operations, such as creating and deleting files. Additionally, the Windows API includes networking commands that can be used to send and receive data over a local network or the Internet.

Mobile APIs, such as the iOS API, provide commands for detecting touchscreen input, such as tapping, swiping, and rotating. It also includes common user interface elements, such as a pop-up keyboard, a search bar, and a tab bar, which provides navigation buttons the bottom of the screen. The iOS API also includes predefined functions for interacting with an iOS device's hardware, such as the camera, microphone, or speakers.

process
System Calls
🖥️
Types of Threads