מערכות הפעלה תרגול 1 - מבוא.

Slides:



Advertisements
Similar presentations
COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Advertisements

What is an operating system? Is it software?
Operating Systems Manage system resources –CPU scheduling –Process management –Memory management –Input/Output device management –Storage device management.
Processes and Job Control. Foreground and Background (1)  Unix is a multi-tasking operating system –some of these tasks are being done by other users.
CSC 501 Lecture 2: Processes. Von Neumann Model Both program and data reside in memory Execution stages in CPU: Fetch instruction Decode instruction Execute.
1 Last Time: OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features.
Semaphores and Mailboxes B. Ramamurthy 1. Page 2 Critical sections and Semaphores When multiples tasks are executing there may be sections where only.
Operating Systems: Software in the Background
Operating Systems. What is an Operating System? A layer of software between users/applications and the hardware. The first program loaded onto a computer.
Ceng Operating Systems Chapter 2.1 : Processes Process concept Process scheduling Interprocess communication Deadlocks Threads.
CS-502 Fall 2006Processes in Unix, Linux, & Windows 1 Processes in Unix, Linux, and Windows CS502 Operating Systems.
CSSE Operating Systems
Unix & Windows Processes 1 CS502 Spring 2006 Unix/Windows Processes.
Processes in Unix, Linux, and Windows CS-502 Fall Processes in Unix, Linux, and Windows CS502 Operating Systems (Slides include materials from Operating.
Phones OFF Please Processes Parminder Singh Kang Home:
Process. Process Concept Process – a program in execution Textbook uses the terms job and process almost interchangeably A process includes: – program.
An Introduction to Operating Systems. Definition  An Operating System, or OS, is low-level software that enables a user and higher-level application.
Guide to Operating System Security Chapter 5 File, Directory, and Shared Resource Security.
Process Description and Control Chapter 3. Major Requirements of an OS Interleave the execution of several processes to maximize processor utilization.
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 Processes Tarek Abdelzaher Vikram Adve.
Introduction to Processes CS Intoduction to Operating Systems.
Today’s Topics Introducing process: the basic mechanism for concurrent programming –Process management related system calls Process creation Process termination.
1 Processes Chapter Processes 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
PROCESSES TANNENBAUM, SECTION 2-1 OPERATING SYSTEMS.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
INTRODUCTION TO COMPUTING Computer Basics. The Information Age Computers are useful in Society to advance: Business Education Art and Music Medicine and.
1 Chapter 7 Operating System & Utility Programs.  consists of the programs that control or maintain the operations of the computer and its devices. It.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
1 Chapter 2.1 : Processes Process concept Process concept Process scheduling Process scheduling Interprocess communication Interprocess communication Threads.
© Paradigm Publishing Inc. 4-1 OPERATING SYSTEMS.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
Multiprogramming. Readings r Silberschatz, Galvin, Gagne, “Operating System Concepts”, 8 th edition: Chapter 3.1, 3.2.
Page 1 Task Control: Signals and Alarms Chapter 7 and 8 B. Ramamurthy.
CS 153 Design of Operating Systems Spring 2015 Lecture 5: Processes and Threads.
Copyright©2008 N.AlJaffan®KSU1 Chapter 7 Operating System and Utility Programs.
Process Models, Creation and Termination Reference –text: Tanenbaum ch. 2.1.
Operating Systems Process Creation
Operating Systems Recitation 4, April th, 2002 Signals.
LINUX System : Lecture 7 Process Bong-Soo Sohn Lecture notes acknowledgement : The design of UNIX Operating System.
Process Description and Control Chapter 3. Source Modified slides from Missouri U. of Science and Tech.
MODERN OPERATING SYSTEMS Chapter 1 Introduction
CS 390 Unix Programming Environment
Chapter 2 Process Management. 2 Objectives After finish this chapter, you will understand: the concept of a process. the process life cycle. process states.
3/1/2016Page 1 Realtime System Fundamentals : Scheduling B. Ramamurthy.
Processes 2 Introduction to Operating Systems: Module 4.
©Brooks/Cole, 2001 Figure 5-14 Job States fg. ©Brooks/Cole, 2001 백그라운드 / 포그라운드 (Background/Foreground Jobs) - 오랜 시간 작업을 요하며 터미널에서 입력을 받지 않는 작업인 경우 백그라운드.
Agenda Managing Processes (Jobs) Command Grouping Running jobs in background (bg) Bringing jobs to foreground (fg), Background job status (jobs) Suspending.
ITC 4 ESO 3rd TERM Operating Systems YEAR
Computer Systems – Hardware, Operating System, & Software
Operating Systems Review ENCE 360.
Example questions… Can a shell kill itself? Can a shell within a shell kill the parent shell? What happens to background processes when you exit from.
TYPES OFF OPERATING SYSTEM
Threads and Locks.
What is an Operating System?
Xinu Semaphores.
תרגול 4 – ניהול תהליכים, מבני נתונים למימוש תהליכים
תרגול 3 – תהליכים, תאום תהליכים
Process Models, Creation and Termination
Realtime System Fundamentals : Scheduling and Priority-based scheduling B. Ramamurthy 11/22/2018.
Xinu Semaphores.
מערכות הפעלה תרגול 2 – סינכרוניזציה.
CSC 140: Introduction to IT
Realtime System Fundamentals : Scheduling and Priority-based scheduling B. Ramamurthy Amrita-UB-MSES /11/2013.
Xinu Semaphores.
Chapter 3: Processes.
Operating Systems: A Modern Perspective, Chapter 1
Processes in Unix and Windows
Welcome to CS314 Operating Systems A Quick Tour for Introduction to OS
Welcome to CS314 Operating Systems A Quick Tour for Introduction to OS
Lecture 6 Introduction to Process Management
Presentation transcript:

מערכות הפעלה תרגול 1 - מבוא

ברוכים הבאים לקורס מערכות הפעלה! אדמיניסטרציה מערכת ההפעלה שתודגם בקורס היא XINU: הכנה לעבודה ב-XINU הרצת ישומים תהליכים קריאות מערכת הפעלה דצמבר 18 מערכות הפעלה - תרגול 1

אדמיניסטרציה מתרגלת: בלה ספקטור תרגול: יום ה' 16:00-18:00 שעות קבלה: טרם הוחלט (לתאם מראש במייל) אתר הקורס: http://math.haifa.ac.il/specktor_bella תרגילי בית: הגשה בזוגות דצמבר 18 מערכות הפעלה - תרגול 1

איך מתקינים XINU להתקין מערכת הפעלה: http://cs.haifa.ac.il/courses/OS/xinu4win.exe להתקין ערכת פיתוח Turbo C: http://cs.haifa.ac.il/courses/OS/TC.exe להוסיף מסלול TC למשתנה סביבה PATH (למשל c:\tc\bin) דצמבר 18 מערכות הפעלה - תרגול 1

תכנית ראשונה – с.ex1 xmain - הפונקציה הראשית ב-XINU מה התכנית עושה? #include <conf.h> xmain() { putc(CONSOLE, ‘h’); putc(CONSOLE, ‘i’); putc(CONSOLE, ‘\n’); } דצמבר 18 מערכות הפעלה - תרגול 1

tcc -I.. ex1.c ..\xinu.lib > errs לפתוח command line(cmd.exe) להריץ Turbo C כדי לקבל קובץ exe tcc -I.. ex1.c ..\xinu.lib > errs קובץ errs מכיל את תוצאות הקומפילציה. כדי לפתוח אותו: type errs לפתוח קובץ exeשהתקבל כדי להריץ ישום ( ex1.exe בדוגמה) הערה: Ctrl-F1 מאפשר לראות את הנתונים הפנימיים של מערכת דצמבר 18 מערכות הפעלה - תרגול 1

חלונות ב-XINU - פתיחת חלון int win1; win1 = open(CONSOLE, “#10,4:30,20”, “wht/blk”); החלון יווצר עם מסגרת. ניתן להשמיט את ה-# ואז החלון יהיה ללא מסגרת - c1,r1קואורדינטות של הפינה השמאלית העליונה של חלון (сolumn, row) c2,r2 - קואורדינטות של הפינה הימנית התחתונה bbb/fff – מחרוזת באורך 3 תווים המיצגת את צבעי החלון (background/foreground) פונקציה open מחזירה device descriptor ניתן לפתוח עד 4 חלונות דצמבר 18 מערכות הפעלה - תרגול 1

פעולות נוספות סגירת חלון close(win1); כתיבה לחלון putc(win1, ‘a’); הערה: כתיבת CONSOLE במקום ה-desc תגרום לכתיבה ישירות ל-СONSOLE קריאה מחלון ch = getc(win1); דצמבר 18 מערכות הפעלה - תרגול 1

דוגמה 1 #include <kernel.h< xmain() } int i; int win1; i = 0; #include <conf.h< #include <kernel.h< xmain() } int i; int win1; i = 0; win1 = open(CONSOLE, “#1,4:30,20”, “blk/wht”); while ( i++ < 10) putc(win1, ‘A’); close(win1); { דצמבר 18 מערכות הפעלה - תרגול 1

מערכות הפעלה – מבוא Linux Unix Novell - NetWare MS Windows Mac OS X דצמבר 18 מערכות הפעלה - תרגול 1

מערכות הפעלה – נעים להכיר! מהי מערכת ההפעלה? שכבת תוכנה לניהול והסתרת פרטים של חומרת המחשב. מנהלת את משאבי המערכת ומשתפת אותם בין תהליכים, תוכניות, ומשתמשים. אפליקציה 1 אפליקציה 2 אפליקציה 3 אפליקציה 4 מערכת הפעלה Disk controller Printer controller Device CPU memory דצמבר 18 מערכות הפעלה - תרגול 1

סוגי מערכות הפעלה עם תהליך יחיד (MS DOS) ריבוי תהליכים (MS Windows, UNIX) ריבוי מעבדים (HYDRA) מערכות מבוזרות (Amoeba) מערכות (VxWorks, Windows CE) real time דצמבר 18 מערכות הפעלה - תרגול 1

מערכות הפעלה ומבנה המחשב התנהגות מערכת ההפעלה מוכתבת (חלקית) על-ידי החומרה שעליה היא רצה סט פקודות, רכיבים מיוחדים החומרה יכולה לפשט / לסבך משימות מערכת ההפעלה מחשבים ישנים לא סיפקו תמיכה לזיכרון וירטואלי דצמבר 18 מערכות הפעלה - תרגול 1

מנגנוני חמרה לתמיכה במערכת ההפעלה מנגנוני חמרה לתמיכה במערכת ההפעלה שעון חומרה פעולות סנכרון אטומיות פסיקות קריאות מערכת-הפעלה פעולות בקרת קלט / פלט הגנת זיכרון אופן עבודה מוּגן (protected) דצמבר 18 מערכות הפעלה - תרגול 1

רכיבי מערכת הפעלה זאת ועוד... מנהל תהליכים אתחול מנהל זיכרון גיבוי מנהל קלט / פלט מנהל קבצים הגנה ניהול חשבונות משתמשים ממשק משתמש (shell) זאת ועוד... אתחול גיבוי ... דפדפן? דצמבר 18 מערכות הפעלה - תרגול 1

קריאות מערכת הפעלה קריאת מערכת הפעלה היא פונקציה המהווה ממשק בין המשתמש ושירותי מערכת ההפעלה קריאות מערכת הפעלה מבצעות בדיקות תקינות הפרמטרים המועברים (מזהה תהליך קיים, פרמטר בתחום המותר, ועוד) דצמבר 18 מערכות הפעלה - תרגול 1

קריאות מערכת הפעלה משתמש יכול לגשת רק לקריאות מערכת הפעלה פונקציות פנימיות של מערכת הפעלה מוגנות מפני המשתמש תכניות משתמש קריאות מערכת הפעלה מערכת ההפעלה חומרה דצמבר 18 מערכות הפעלה - תרגול 1

קריאות מערכת הפעלה XINU קריאות מערכת יחזירו SYSERR (ערך 1-) עבור קריאה לא תקינה בסיום ביצוע תקין קריאות מ"ה מחזירות ערך מספרי. חלקן מחזירות OK (ערכו 1) עבור קריאות מערכת הפעלה מובטח שביצוע בו-זמני יהיה תקין דצמבר 18 מערכות הפעלה - תרגול 1

תהליכים תהליך הוא ביצוע של תכנית תהליכים יוצרים אשליה של הרצת מספר אפליקציות במקביל לכל תהליך – תכנית אחת, לתכנית אחת יכולים להיות תהליכים רבים מתבצעים בו זמנית דצמבר 18 מערכות הפעלה - תרגול 1

תהליכים לתהליך אין השתקפות בחומרה, תהליכים הם מושג הממומש בתוכנה נקרא גם job, task, sequential process הערה: התכניות שכתבתם עד עתה בקורסים קודמים רצו כולן כתהליכים בודדים דצמבר 18 מערכות הפעלה - תרגול 1

תהליכים תהליכים יכולים לשתף פעולה עם תהליכים אחרים, ובכך מתאפשרת כתיבה של תכניות המורכבות מכמה תהליכים, שכל אחד מהם מבצע חלק מהעבודה במקרים רבים קל יותר ותחזוקתי יותר לכתוב תכניות המורכבות מכמה תהליכים מאשר לכתוב תכנית בעלת תהליך יחיד המבצעת את אותה העבודה דצמבר 18 מערכות הפעלה - תרגול 1

ריבוי תהליכים t A+B t A + t B תהליכים מקבילים תהליכים עוקבים A A B B זמן ריצה קצר יותר זמן דצמבר 18 מערכות הפעלה - תרגול 1

חלוקת זמן במערכת מרובת תהליכים פועל כל תהליך כאילו הוא יחיד במערכת, ואינו נדרש לתאם את פעולותיו עם תהליכים אחרים (אלא אם כן רצונו לתאם) מ"ה אחראית לאפשר לכל התהליכים להתבצע, אך בכל רגע נתון, בדיוק אחד התהליכים מבוצע במעבד דצמבר 18 מערכות הפעלה - תרגול 1

חלוקת זמן תזמון בפועל אבסטרקציה A תכנית A תכנית A תכנית B 1 A מחכה לקלט 2 מחכה למעבד מ B 1 2 3 3 מחכה למעבד A 2 A 1 A 2 B 3 זמן דצמבר 18 מערכות הפעלה - תרגול 1

חלוקת זמן תהליך יכול לוותר על המעבד בכמה דרכים: בקשות קלט/פלט בהן עליו לחכות לסיום ביצוע הבקשה בקשה לחכות לאירוע כלשהו (למשל קבלת הודעה מתהליך אחר) בקשה להפסיק ביצוע למשך זמן נתון (sleep) מערכת הפעלה יכולה ליזום החלפת תהליך דצמבר 18 מערכות הפעלה - תרגול 1

מ"ה ללא תהליכים (MS-DOS) יתרונות: פשטות תכניות יכולות לנצל את כל משאבי המחשב תהליכים אחרים אינם מפריעים התכניות מסתיימות בזמן הקצר ביותר זמן הביצוע תלוי רק בתכנית עצמה תכניות יכולות להסתמך על אי יציאתן מהמעבד דצמבר 18 מערכות הפעלה - תרגול 1

מ"ה ללא תהליכים (MS-DOS) חסרונות: לא ניתן להשתמש במעבד ובאמצעי קלט/פלט בו זמנית בצורה יעילה תכנית הצורכת את המעבד לפרק זמן ארוך מונעת מתכניות אחרות כל שימוש במחשב אין תמיכה במישתמשים אינטראקטיביים לא מאפשרות תקשורת בין תהליכים דצמבר 18 מערכות הפעלה - תרגול 1

מאפייני תהליך קוד התוכנית נתונים מספר תהליך (process id) עדיפות pid = 1215 pid = 1216 pid = 1221 קוד התוכנית נתונים מספר תהליך (process id) עדיפות מחסנית זמן-ביצוע program counter Open Office מחשב מסך מסך מסך דצמבר 18 מערכות הפעלה - תרגול 1

תהליך - דיאגרמת מצבים wake up sleep SLEEPING resched CURRENT READY SUSPENDED CURRENT READY SLEEPING Create suspend resume resched sleep wake up דצמבר 18 מערכות הפעלה - תרגול 1

שרשרת המצבים של תהליך דוגמה שרשרת המצבים של תהליך דוגמה Suspended Ready Current Sleep … END התהליך נוצר, הועבר לביצוע, הושעה, הועבר לביצוע, הלך "לישון", הועבר לביצוע, הושעה... דצמבר 18 מערכות הפעלה - תרגול 1

יצירת תהליכים - create XINU תומכת בריבוי תהליכים. יצירת תהליך מתבצעת באמצעות קריאת מערכת הפעלה create сreate( <שם הפונקציה הראשית>, <גודל מחסנית לתהליך>, <עדיפות>, <שם התהליך>, <מס' פרמטרים>, <פרמ' 1>, <פרמ' 2>, …, < n פרמ' > ); דצמבר 18 מערכות הפעלה - תרגול 1

יצירת תהליכים - create קיימים 2 קבועים: INITSTK – גודל מחסנית של 512 בתים INITPRIO – עדיפות 20 התהליך xmain נוצר עם גודל המחסנית והעדיפות הנ"ל createמחזירה מזהה תהליך ייחודי (pid) עבור התהליך הנוצר תהליך הנוצר באמצעות createיווצר במצב מושעה (SUSPENDED) דצמבר 18 מערכות הפעלה - תרגול 1

הכנסת תהליך מושעה לריצה תהליך מושעה (לדוגמא: תהליך חדש שנוצר כרגע) עובר למצב בו הוא מוכן (READY) לריצה ע"י קריאת מערכת הפעלה .resume resume ( <מזהה תהליך> ); התהליך עובר למצב READY ומהרגע הזה מחכה בתור לכניסה למעבד דצמבר 18 מערכות הפעלה - תרגול 1

דוגמא 2 xmain() { int prA(), prB(); דוגמא 2 #include <conf.h> #include <kernel.h> xmain() { int prA(), prB(); resume( create(prA, INITSTK, INITPRIO, “proc 1”, 0) ); resume( create(prB, INITSTK, INITPRIO, “proc 2”, 0) ); } prA() while(1) putc(CONSOLE, ‘A’); prB() putc(CONSOLE, ‘B’); דצמבר 18 מערכות הפעלה - תרגול 1

מהו הפלט של התכנית? 1 AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBB 2 BBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAA 3 1111111111111111111111111111112222222222222222222222222222 4 2222222222222222222222222222222222221111111111111111111111 5 AAAAABBBBBBBAAAAAAAAAAAAAAAAAAABBBBAAAAAAAAAAAAAA דצמבר 18 מערכות הפעלה - תרגול 1

דוגמא 3 #include <conf.h> #include <kernel.h> xmain() { דוגמא 3 #include <conf.h> #include <kernel.h> xmain() { int prnter(); resume( create(prnter, INITSTK, INITPRIO, “proc 1”, 1, ‘A’) ); resume( create(prnter, INITSTK, INITPRIO, “proc 2”, 1, ‘B’) ); } prnter(int ch) while(1) putc(CONSOLE, ch); דצמבר 18 מערכות הפעלה - תרגול 1

השעיית תהליך ניתן להשעות תהליך מריצה באמצעות קריאת מערכת הפעלה . suspend( <מזהה תהליך> ); ניתן להשעות תהליך רק אם הוא רץ כרגע או מוכן לריצה. דצמבר 18 מערכות הפעלה - תרגול 1

סיום תהליך סיום נורמלי של תהליך מתבצע כאשר מסתיימת הפונקציה הראשית שלו. ניתן לגרום לסיום התהליך לפני כן (להרוג אותו) על ידי קריאת מ"ה kill kill( <מזהה תהליך> ); תהליך יכול להרוג את עצמו. קריאת התאבדות: kill(getpid()); getpid() – מחזיר את המזהה של התהליך דצמבר 18 מערכות הפעלה - תרגול 1

עדיפויות העדיפות מגדירה את מיקומו של התהליך בתור המתנה של CPU. ניתן לקבל עדיפות של התהליך באמצעות קריאה ל-getprio getprio( <מזהה תהליך> ); שינוי עדיפות של תהליך: chprio( ,<מזהה תהליך> <עדיפות חדשה>); chprio מחזירה את העדיפות הישנה (לפני השינוי) דצמבר 18 מערכות הפעלה - תרגול 1

שינה תהליך יכול לבקש ללכת לישון לזמן קצוב. את הזמן מבטאים בשניות ניתן ללכת לישון למספר שלם של שניות בלבד. sleep( <מספר שניות שלם> ); sleep(0) גורם להחלפת תהליכים ללא כניסה למצב שינה. דצמבר 18 מערכות הפעלה - תרגול 1

שינה - דוגמה #include <conf.h> #include <kernel.h> long counter; /* global shared counter */ xmain() { int proc(int), count_proc(); int pid; counter = 0; pid = create(count_proc, INITSTK, INITPRIO-1, “counter process”, 0); resume( create(proc, INITSTK, INITPRIO, “my process”, 1, pid)); } דצמבר 18 מערכות הפעלה - תרגול 1

דוגמה - המשך /* counter – increase global counter */ count_proc() { while(1) counter++; } /* proc - wake up counting process and go to sleep, print counter when waked up */ proc(int other_id) printf(“going to sleep for 10 seconds”); resume(other_proc); /* let counter process to run */ sleep(10); suspend(other_proc); /* stop counter process */ printf(“while I was sleeping other process increased the counter %d times”, counter); kill(other_proc); דצמבר 18 מערכות הפעלה - תרגול 1

דוגמה - המשך לתהליך counter עדיפות נמוכה. מדוע? counter מסתיים בעת ש-proc מבצע kill proc מסתיים בצורה טבעית counter הוא משתנה משותף דצמבר 18 מערכות הפעלה - תרגול 1

בשעור הבא... קריאות מערכת הפעלה - המשך דוגמאות לשימוש בקריאות מערכת ההפעלה דצמבר 18 מערכות הפעלה - תרגול 1

דצמבר 18 מערכות הפעלה - תרגול 1