0% found this document useful (0 votes)
154 views23 pages

Operating System: Principles of

The document discusses the key purposes and functions of operating systems. It explains that operating systems abstract complex computer resources, provide hardware compatibility between systems, and protect the system from misbehaving programs. Interrupts and system calls allow programs to interface with the operating system to access hardware and perform privileged operations. Linux uses file descriptors and system calls like read and write to manage file input/output. Processes represent units of work and have process tables that store their state as they move between running, ready, and blocked states through context switching.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
154 views23 pages

Operating System: Principles of

The document discusses the key purposes and functions of operating systems. It explains that operating systems abstract complex computer resources, provide hardware compatibility between systems, and protect the system from misbehaving programs. Interrupts and system calls allow programs to interface with the operating system to access hardware and perform privileged operations. Linux uses file descriptors and system calls like read and write to manage file input/output. Processes represent units of work and have process tables that store their state as they move between running, ready, and blocked states through context switching.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Principles of

OPERATING
SYSTEM
GROUP 4
1. Purpose
What is the operating
system's PURPOSE?
A. IT ABSTRACTS COMPLEX B. IT PROVIDES HARDWARE C. IT PROTECTS THE
COMPUTER RESOURCES. COMPATIBILITY. SYSTEM.

I. EVERYONE IS
AWARE OF THE

I. ONE OF THE OPERATING SYSTEM'S


OPERATING SYSTEM INCOMPATIBILITY RESPONSIBILITIES IS TO KEEP AN EYE
I. FILE DIFFICULTIES THAT FORCE USERS TO ON PROGRAMS. IT PREVENTS
INSTALL DIFFERENT SOFTWARE VERSIONS INDIVIDUAL APPLICATIONS FROM
II. PROCESS ON DIFFERENT OPERATING SYSTEMS. ACCESSING THE SYSTEM DIRECTLY,
OPERATING SYSTEMS, ON THE OTHER INSTEAD OF REQUIRING ANY REQUESTS
III. CONNECTION HAND, SIGNIFICANTLY REDUCE TO GO THROUGH THE OPERATING
SYSTEM. THE OPERATING SYSTEM

INCOMPATIBILITY ISSUES; WE AREN'T
ENSURES THAT PROGRAM REQUESTS
AWARE OF THIS SINCE THEY ESSENTIALLY
ARE SAFE BEFORE IMPLEMENTING
SOLVE INCOMPATIBILITY ISSUES.
THEM.

YOU CAN THINK OF AN OPERATING SYSTEM AS THE ADULT IN THE COMPUTER.


2. Interrupts
2.1. INTERRUPT CATEGORIES
A HARDWARE INTERRUPT

-IS INITIATED BY A DEVICE LIKE A KEYBOARD OR HARD DISK.


AN EXCEPTION
- IS A DIFFERENT TYPE OF INTERRUPT WHICH IS INITIATED BY THE CPU.
A SOFTWARE INTERRUPT
-IS INITIATED EXPLICITLY BY THE RUNNING PROGRAM USING A 2.2. HANDLING INTERRUPTS
SPECIAL-PURPOSE INSTRUCTION A MODERN CPU ALLOWS CODE TO BE EXECUTED IN DIFFERENT
DESIGNED SPECIFICALLY FOR PROCESSOR MODES, WHICH PROVIDES DIFFERENT PRIVILEGES FOR
TRIGGERING INTERRUPTS. ACCESSING THE SYSTEM. MOST PROGRAMS EXECUTE WHILE THE
CPU IS IN USER MODE. USER MODE IS VERY RESTRICTIVE.

SUPERVISOR MODE IS A MODE OF EXECUTION IN A DEVICE IN


WHICH ALL INSTRUCTIONS, INCLUDING PRIVILEGED ONES, CAN BE
PERFORMED BY THE PROCESSOR. IT IS THUS CAPABLE OF
EXECUTING BOTH INPUT/OUTPUT OPERATIONS AND PRIVILEGED
OPERATIONS. THE OPERATING SYSTEM OF A COMPUTER USUALLY
OPERATES IN THIS MODE.
2.3. SYSTEM CALLS

A SYSTEM CALL IS A REQUEST BY A USER PROGRAM TO THE OPERATING


SYSTEM TO PERFORM SOME OPERATION ON THE PROGRAM'S BEHALF.
EXAMPLES OF SYSTEM CALLS IN A TYPICAL OPERATING SYSTEM
INCLUDE A REQUEST TO OPEN A FILE, A REQUEST TO START ANOTHER
PROGRAM, A REQUEST TO SEND A MESSAGE TO ANOTHER COMPUTER,
OR A REQUEST TO DISPLAY A LINE ON THE SCREEN. 2.4. LIBRARY FUNCTIONS

LIBRARY FUNCTIONS SERVE TWO MAIN PURPOSES.


THEY PROVIDE PORTABILITY.


THEY PROVIDE COMPLEX FUNCTIONALITY.
3. Linux
file-handling
Linux file-handling

- In Unix-based systems, a
process can interact with files
through file descriptors, integer
identifiers of files that the
process has open.

· IN LINUX THERE ARE TWO


3.1 MANAGING DESCRIPTORS REASONS IN WHY CLOSING A FILE IS
IMPORTANT

IF THE PROGRAM CHANGES THE FILE'S CONTENTS, THE OPERATING


- For creating a file SYSTEM WILL BUFFER THE CHANGES FOR EFFICIENCY REASONS;
descriptor, Linux has the IT ONLY WRITES THE CHANGES TO THE DISK WHEN THE BUFFER
BECOMES FULL. BY CLOSING THE FILE, YOU ARE FORCING THE
open system call, which OPERATING SYSTEM TO EMPTY THE BUFFER. OTHERWISE, IF THE
takes two parameters, the PROGRAM ABORTS ABNORMALLY, THE CHANGES DON'T OCCUR.

file name and an int


representing options to the IF THE PROGRAM CHANGES THE FILE'S CONTENTS, THE OPERATING
SYSTEM WILL BUFFER THE CHANGES FOR EFFICIENCY REASONS;
system call. IT ONLY WRITES THE CHANGES TO THE DISK WHEN THE BUFFER
BECOMES FULL. BY CLOSING THE FILE, YOU ARE FORCING THE
OPERATING SYSTEM TO EMPTY THE BUFFER. OTHERWISE, IF THE
PROGRAM ABORTS ABNORMALLY, THE CHANGES DON'T OCCUR.
TO GET INFORMATION FROM A FILE, WE
3.2. READING AND WRITING IN LINUX FILE- USE THE READ SYSTEM CALL.
HANDLING
nbytes = read(file_desc, buf, buf_len);

Reading and writing files in This takes three parameters: first the file descriptor
linux is simple, you just use (an int), then a pointer to an array of bytes (a
char*), and finally an integer saying how long the
the standard utilities for array is. It returns an int representing the number of
reading files such as cat, bytes read from the file, 0 if it has reached the file's
end, or a negative integer in the case of an error.
grep, tail, head, awk etc..
And you primarily use the The write system call is quite similar.

output redirect operator > write(file_desc, buf, nbytes);


and standard commands like It takes the file descriptor (an int), a pointer to an
sed for writing files. array of bytes (a char*), and an integer saying how
many bytes to write to the file.
· 0 REPRESENTS STANDARD INPUT.
3.3 DEFAULT DESCRIPTORS USUALLY, READING FROM FILE DESCRIPTOR 0 WILL
CORRESPOND TO READING DATA FROM THE

KEYBOARD. THIS ALLOWS A PROCESS TO RECEIVE
INPUT FROM THE USER.
Every process has
three file descriptors · 1 REPRESENTS STANDARD OUTPUT.
already defined for it USUALLY, CHARACTERS WRITTEN TO 1 APPEAR ON
THE DISPLAY.
before it enters the
program's main · 2 REPRESENTS STANDARD ERROR.
USUALLY, CHARACTERS WRITTEN TO 2 ALSO APPEAR ON
function. THE DISPLAY; THE DIFFERENCE IS THAT THE SYSTEM DOES
NOT BUFFER THE OUTPUT AS IT DOES WITH STANDARD
OUTPUT, AND SO ANY CHARACTERS WRITTEN APPEAR
IMMEDIATELY.
4. Processes
Ø An entity that Stack
represents the basic The process Stack contains
unit of work to be temporary data such as
implemented in the method/function
system. parameters, return address,
and local variables.
Ø Doesn’t really exist Heap
but they are one of the This is dynamically allocated
memory to a process during
most useful. its run time.
Text
Ø When a program is This includes the current
loaded into the memory activity represented by the
and it becomes a value of Program Counter
process. It can be and the contents of the
processor's registers

divided into four
sections stack,
heap, text and data
Data
This section contains the
global and static variables.

THE PROCESS TABLE STORES WHAT THE


OPERATING SYSTEM NEEDS TO REMEMBER FOR
EACH PROCESS.

4.1 Process TABLES ARE IMPORTANT DATA STRUCTURES TO


STORE INFORMATION ABOUT EVERY PROCESS

Table AND RESOURCES.

THE PROCESS TABLES STORE THE ID OF EVERY


PROCESS AND CORRESPONDING TO IT, THE
POINTER TO ITS PCB.

4.2. Context switching


CONTEXT SWITCHING IS A TECHNIQUE OR METHOD USED BY THE OPERATING SYSTEM TO SWITCH
A PROCESS FROM ONE STATE TO ANOTHER TO EXECUTE ITS FUNCTION USING CPUS IN THE
SYSTEM. 
DURING A PROCESS'S LIFE, IT GOES THROUGH THREE STATES: IT CAN BE RUNNING ON THE CPU, IT
CAN BE READY FOR THE CPU, OR IT CAN BE BLOCKED.

IN CONTEXT SWITCHING, PROCESSES ARE SWITCHED SO QUICKLY THAT THE USER GETS THE MYTH
THAT ALL PROCESSES ARE RUNNING SIMULTANEOUSLY.
BUT IN THE PROCESS OF CONTEXT SWITCHING, THERE ARE LOTS OF STEPS THAT WE NEED TO
FOLLOW. WE CANNOT DIRECTLY CHANGE OR SWITCH THE PROCESS FROM RUNNING STATE TO READY
STATE. IT IS MANDATORY TO SAVE THE CONTEXT OF THAT PROCESS.
Context Switching
Triggers
THE CONTEXT SWITCHING TRIGGERS ARE:

1. INTERRUPTS
2. MULTITASKING
3. KERNEL/USER SWITCH

INTERRUPTS: – WE REQUIRE CONTEXT SWITCHING IF THERE IS AN INTERRUPTION OF


CPU TO GET DATA FROM THE DISK READ.
MULTITASKING: – IF THE CPU HAS TO MOVE PROCESSES IN AND OUT OF MEMORY SO
THAT IT CAN RUN MORE THAN ONE OPERATION.
KERNEL/USER SWITCH: – WE USE KERNEL/USER SWITCH IF WE REQUIRE SWITCHING
BETWEEN THE USER MODES TO THE KERNEL MODE.
OPERATING SYSTEMS SUPPORT THE CONCEPT OF
PREEMPTION, WHERE THE OPERATING SYSTEM
WILL CUT OFF A PROCESS AFTER IT USES THE CPU
FOR A CERTAIN AMOUNT OF TIME (CALLED ITS
TIME SLICE) AND PUT IT BACK INTO THE READY
QUEUE. THIS IS REPRESENTED BY THE ARROW

4.3. Preemption
FROM THE RUNNING STATE TO THE READY STATE
IN THE STATE DIAGRAM.

COMPUTER SYSTEMS INCORPORATE A CLOCK


DEVICE, A DEVICE WITH WHICH THE OS CAN
SCHEDULE A HARDWARE INTERRUPT TO OCCUR
AFTER A CERTAIN AMOUNT OF TIME.
4.4. Process
scheduling
WHEN THE READY QUEUE CONTAINS
ROUND ROBIN
THE SIMPLEST PROCESS
MANY PROCESSES, AND IT'S TIME TO
SCHEDULING ALGORITHM
CHOOSE ONE TO START RUNNING, THE
OS IS IN A DILEMMA: WHICH ONE TO IN WHICH EACH PROCESS IS TREATED
SELECT? EQUALLY. WHEN ONE PROCESS RUNS ITS
TIME SLICE OUT, IT IS SIMPLY PLACED AT
THE END OF THE READY QUEUE, AND THE
THIS SELECTION PROCESS IS NEXT PROCESS IN LINE BEGINS.
CALLED PROCESS SCHEDULING
5. Linux
Process
Management
Linux Process Management
The exit system call allows a
process to request that it be
killed.

void exit(int exit_code)


5.1 Creating process #INCLUDE <STDIO.H>


#INCLUDE <UNISTD.H>

· SOME WAY FOR A PROCESS TO START INT MAIN(INT ARGC, CHAR **ARGV) {


NEW PROCESSES IS TO USE THE FORK     INT REMAINING = 4;
SYSTEM CALL.     INT CHILD_PID;

INT FORK()     /* SPAWN OFF CHILDREN */


    WHILE (REMAINING > 0) {
THE FORK SYSTEM CALL CREATES A         CHILD_PID = FORK();
DUPLICATE OF THE CURRENTLY RUNNING         IF (CHILD_PID == 0) BREAK;
PROCESS. IT IS A COMPLETE CLONE — IT         REMAINING--;
HAS A NEW PROCESS ID.     }

    PRINTF("HELLO\N");
    RETURN 0;
}
5.2 Running programs
USE THE EXECVP SYSTEM CALL WHEN RUNNING AN ENTIRELY DIFFERENT
PROGRAM

INT EXECVP(CHAR *FILE, CHAR **ARGS)

WHEN THE SYSTEM EXECUTES THE EXECVP SYSTEM CALL, IT REPLACES THE
PROGRAM RUN BY THE CURRENT PROCESS WITH THE REQUESTED PROGRAM. THUS,
EXECVP, WHEN IT IS WORKING CORRECTLY, DOES NOT RETURN. INSTEAD, THE
PROCESS'S EXECUTION THREAD IS TRANSFERRED TO THE BEGINNING OF THE
REQUESTED PROGRAM.
ASHLY JOHN GALAGNARA
References: INTONG JPATRICK
JEGER C. LOOR
http://www.cburch.com/books/os/inde JESSE GEMS MARC SALCEDO
x.html#s5
PRINCES KIERRA ALVARADO SARVEDA
http://www.tutorialsspace.com/
https://www.tutorialspoint.com/opera ABEGAIL ABRAGAN TRANI
ting_system/os_processes.htm
JAMES RYAN TANTOY
https://www.techopedia.com/definitio
n/22400/supervisor-
mode#:~:text=Supervisor%20mode%20is
%20a%20mode,usually%20operates%20in
%20this%20mode.
GROUP 4 PRESENTERS

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy