OPERATING SYSTEMS

Computer science OPERATING SYSTEMS

0512100006
COMPUTER SCIENCE
EQF6
COMPUTER SCIENCE
2022/2023

OBBLIGATORIO
YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2017
AUTUMN SEMESTER
CFUHOURSACTIVITY
648LESSONS
324LAB


Objectives
KNOWLEDGE AND UNDERSTANDING
THE COURSE AIMS TO GIVE TO THE STUDENTS:
•DEEP UNDERSTANDING ABOUT THE STRUCTURE OF A CLASSICAL OPERATING SYSTEM AND HOW IT COULD BE MANAGED BY THE ADMINISTRATOR
•GENERAL KNOWLEDGE OF THE MAIN MODULES OF A MODERN OPERATING SYSTEM AND HOW THEY COOPERATE TO PROVIDE HIGH LEVEL SERVICES TO THE USERS
•OVERVIEW OF THE MAIN SYSTEM CALLS PROVIDED BY THE API OF LINUX (UNIX) OPERATING SYSTEM
•DETAILED DESCRIPTION OF THE FILE SYSTEM IMPLEMENTATION AND THE API OR SYSTEM COMMANDS TO MANAGE STORAGE AND BACKUPS
•BASIC DEFINITION OF THE PROCESS CONCEPT AND PRESENTATION OF THE MAIN SCHEDULING ALGORITHMS
•UNDERSTANDING OF THE IMPACT PRODUCED BY THE (VIRTUAL) MEMORY MANAGEMENTS ON THE PERFORMANCE OF THE USER PROCESSES

APPLYING KNOWLEDGE AND UNDERSTANDING
AT THE END OF COURSE THE STUDENTS SHOULD BE ABLE TO:
•INSTALL, CONFIGURE AND MANAGE A MULTIUSER OPERATING SYSTEM
•DESIGN AND IMPLEMENT SIMPLE SHALL COMMAND (BASED ON THE SYSTEM CALL OR HIGH LEVEL API) TO SPEED-UP SPECIFIC MANAGEMENT FUNCTIONS
•EVALUATE THE PERFORMANCE OF THE TARGET OPERATING SYSTEM, OPTIMIZING THROUGH TUNING AND PROFILING THE RESOURCE USAGE
•IDENTIFY OPTIMAL SOLUTION FOR TYPICAL ADMINISTRATION TASKS (THROUGH USER COMMANDS RUN FROM THE SHELL, OR SPECIFIC PROGRAM WRITTEN USING THE C PROGRAMMING LANGUAGE)
Prerequisites
THE STUDENTS NEED TO KNOW THE COMPUTER ARCHITECTURE AND THE C PROGRAMMING LANGUAGE.
Contents
48 HOURS FOR CLASSES
24 HOURS FOR LABORATORY

1.INTRODUCTION OF THE ORGANIZATION, THE DATA STRUCTURES AND THE OPERATIONS OF A MODERN OPERATING SYSTEM. PROCESS MANAGEMENT AND MEMORY. (2 HOURS OF FRONTAL LESSONS)
2.BASIC ELEMENTS OF THE LINUX OPERATING SYSTEM: INSTALLATION, COMPILATION AND DEBUGGING, AND ELEMENTS OF A FIRST INTRODUCTION TO BASH. (4 HOURS OF LABORATORY LESSONS)
3.STRUCTURE OF OPERATING SYSTEMS: SERVICES, USER INTERFACE, SYSTEM CALLS, TYPES OF CALLS AND SYSTEM PROGRAMS. (2 HOURS OF FRONTAL LESSONS)
4.FILE SYSTEM INTERFACE: THE CONCEPT OF FILE ACCESS METHODS, DIRECTORY STRUCTURE, MOUNTING A FILE SYSTEM BLOCK ALLOCATION METHOD, MANAGEMENT OF FREE SPACE. (8 HOURS OF FRONTAL LESSONS)
5.IMPLEMENTATION OF FILE SYSTEM: STRUCTURES OF A FS, FS AND DIRECTORIES. (8 HOURS OF FRONTAL LESSONS)
6.I/O FILES: FILE DESCRIPTOR, STANDARD FILE OPERATIONS ON FILES, FILE TABLE, FILE SHARING, ATOMIC OPERATIONS, I/O BUFFER. (4 HOURS OF LABORATORY LESSONS)
7.FILES AND DIRECTORIES: FILE TYPES, STAT STRUCTURE, REAL AND EFFECTIVE USER ID, ACCESS PERMISSIONS, LINKS (6 HOURS OF LABORATORY LESSONS)
8.PROCESSES: CONCEPT, SCHEDULING, OPERATIONS ON PROCESSES, PID, FORK, WAIT, EXIT, ENVIRONMENT, AND ENVIRONMENT VARIABLES, FILE SHARING, EXEC. (4 HOURS OF FRONTAL LESSONS + 4 HOURS OF LABORATORY LESSONS)
9.SCHEDULING: BASIC CONCEPTS, CRITERIA, SCHEDULING ALGORITHMS, AND EXAMPLES. (4 HOURS OF FRONTAL LESSONS)
10.INTERPROCESS COMMUNICATION: UNIX PIPE. (4 HOURS OF LABORATORY LESSONS)
11.THREADS AND SHARED MEMORY APPROACCHES (2 HOURS OF FRONTAL LESSONS)
12.PROCESS SYNCHRONIZATION: THE PROBLEM OF CRITICAL REGION, MONITORS, SEMAPHORES, HARDWARE PRIMITIVES (6 HOURS OF FRONTAL LESSONS)
13.MEMORY MANAGEMENT: BACKGROUND, SWAPPING, CONTIGUOUS ALLOCATION, PAGING, AND PAGE TABLE STRUCTURE. (8 HOURS OF FRONTAL LESSONS)
14.VIRTUAL MEMORY: BACKGROUND, DEMAND PAGING, COPY ON WRITE, PAGE REPLACEMENT, FRAME ALLOCATION AND THRASHING (4 HOURS OF FRONTAL LESSONS)
15.SIGNALS: CONCEPT, TYPES AND USE THE SIGNALS. (2 HOURS OF LABORATORY LESSONS)
Teaching Methods
THE COURSE "OPERATING SYSTEMS" PROVIDES:
•A THEORETICAL PART OF LESSONS (48 HOURS) TO TRANSFER THE KNOWLEDGE ABOUT THE STRUCTURES OF AN OPERATING SYSTEM IN GENERAL AND PARTICULARLY FOR THE UNIX OS
•A SECTION ON PRACTICAL ASPECTS WILL BE DEVELOPED IN LABORATORY (24 HOURS). DURING THESE ACTIVITIES THE STUDENTS WILL EXPERIMENTS THE UNIX API, WRITING, DEBUGGING AND RUNNING SIMPLE PROGRAMS WRITTEN IN THE C PROGRAMMING LANGUAGE. THESE SMALL SAMPLE APPLICATIONS WILL BE PROFILED TO ACQUIRE OBJECTIVE DATA FOR THE TUNING STEP.
Verification of learning
EACH STUDENT SHOULD PASS AN EXAMINATION TO EVALUATE HIS/HER KNOWLEDGE. THERE ARE TWO DIFFERENT PROCEDURES:
1.A WRITTEN TEST AND, AFTER PASSING IT, AN ORAL TEST WITH CONTEXTUAL VERIFICATION OF THE SKILLS OWNED BY THE STUDENT.
THE WRITTEN EXAM WILL PROVIDE A SET OF QUESTIONS DESIGNED TO TEST THE KNOWLEDGE OF THE MAIN MODULES OF AN OPERATING SYSTEM AND THE ORGANIZATION. SOME QUESTIONS FROM THE WRITTEN EXAM WILL REQUIRE WRITING A PROGRAM IN C LANGUAGE FOR SOLVING A PROBLEM INVOKING LINUX SYSTEM CALLS TO TEST KNOWLEDGE OF OPERATING SYSTEM FUNCTIONS AND THEIR PROPER USE FOR SOLVING CONCRETE PROBLEMS
2.OTHERWISE THE STUDENTS CAN PASS TWO MID-TERM EXAMS DURING THE LESSON PERIOD. THE ON-GOING KNOWLEDGE IS CHECKED THROUGH A SET OF QUESTIONS (SIMILARLY TO THE WRITTEN EXAM BUT BASED ON THE TOPICS TAUGHT IN THE CORRESPONDING PERIOD)
STUDENTS MAY CHOOSE WHETHER TO PASS ALL MID-TERM TESTS OR TO PASS TRADITIONAL EXAMS AFTER THE END OF CLASSES. STUDENTS WHO HAVE NOT PASSED THE MID-TERM TESTS CAN STILL CHOOSE THE TRADITIONAL EXAM.
THE LEVEL OF EVALUATION OF THE WRITTEN EXAMS TAKES INTO ACCOUNT THE COMPLETENESS AND ACCURACY OF THE ANSWERS, AS WELL AS THE CLARITY IN THE PRESENTATION.
THE MINIMUM LEVEL OF EVALUATION (18) IS ASSIGNED WHEN THE STUDENT SHOWS AN INCOMPLETE PREPARATION IN THE APPLICATION OF THE METHODS THAT HAVE BEEN STUDIED AND HE HAS A LIMITED UNDERSTANDING OF THE STRUCTURE AND ORGANIZATION OF AN OPERATING SYSTEM.
THE MAXIMUM LEVEL (30) IS ASSIGNED WHEN THE STUDENT DEMONSTRATES A COMPLETE AND IN-DEPTH KNOWLEDGE OF THE CONCEPTS AND OF THE DIFFERENT MODULES OF AN OPERATING SYSTEM. MOREOVER HE IS ABLE TO SOLVE THE PROPOSED PROBLEMS ARRIVING EFFICIENTLY AND ACCURATELY TO THE SOLUTION AND SHOWS A REMARKABLE ABILITY TO LINK DIFFERENT CONCEPTS TOGETHER.
PRAISE IS GIVEN WHEN THE CANDIDATE WHO DEMONSTRATES A SIGNIFICANT MASTERY OF THE THEORETICAL AND OPERATIONAL CONTENT AND SHOWS HOW TO PRESENT THE TOPICS WITH CONSIDERABLE OWNERSHIP OF LANGUAGE AND AUTONOMOUS PROCESSING SKILLS EVEN IN CONTEXTS DIFFERENT FROM THOSE PROPOSED BY THE TEACHER.
IF, DUE TO THE COVID-19 EPIDEMIC, IT IS NECESSARY TO DELIVER LESSONS AND EXAMS IN SMART WORKING, THEN WE RESERVE THE POSSIBILITY OF NOT TAKING THE MID-TERM EXAMS AND / OR OF CARRYING OUT ONLY ORAL EXAMS.
Texts
A. SILBERSCHATZ, P.B. GALVIN, G.GAGNE: SISTEMI OPERATIVI: CONCETTI ED ESEMPI. 9A EDITION. PEARSON EDUCATION ITALIA, 2014, ISBN: 9788865183717

W.R. STEVENS, S.A. RAGO, “ADVANCED PROGRAMMING IN THE UNIX ENVIRONMENT”, ADDISON-WESLEY, ISBN: 9780321637734

SUGGESTED:
C. NEWHAM, B. ROSENBLATT, “LEARNING THE BASH SHELL”, O'REILLY, ISBN: 0-596-00965-8

SOFTWARE / HARDWARE:
OPERATING SYSTEM: LINUX
PC CONNECTED TO INTERNET
More Information
THE COURSE ATTENDENCE, THOUGH NOT MANDATORY, IS STRONGLY RECOMMENDED FOR BOTH FRONTAL AND LABORATORY EXERCISES. BECAUSE OF THE COURSE CHARACTERISTICS, YOU NEED TO ACQUIRE SUFFICIENT SKILLS WITH SYSTEM PROGRAMMING IN C LANGUAGE (CODE WRITING, COMPILATION, DEBUGGING AND EXECUTION). THEREFORE, IT IS DESIRABLE THAT THE STUDENT PASSES THE REQUIRED NUMBER OF HOURS IN NON-ASSISTED LABORATORIES IN ORDER TO HIGHLIGHT AND FILL ANY TRAINING DEFICITS.

E-MAILS:
•CATTANEO@UNISA.IT
•BC@DIA.UNISA.IT
•ARESCIGNO@UNISA.IT - ABATE@UNISA.IT
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-11-30]