CTP203 Operating Systems Syllabus

Similar documents
CTE214 Operating Systems Syllabus

Far-western University Central Office, Mahendranagar Operating System

Gildart Haase School of Computer Sciences and Engineering

Computer Science 4302 Operating Systems. Student Learning Outcomes

Undergraduate Course Syllabus

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Operating System Structures

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Operating System Components and Services

OPERATING SYSTEMS Internais and Design Principles

CS420: Operating Systems OS Services & System Calls

Example of Standard API

Operating Systems 4 th Class

Operating System Tutorial

CHAPTER 15: Operating Systems: An Overview

Weighted Total Mark. Weighted Exam Mark

Operating Systems, 6 th ed. Test Bank Chapter 7

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

ELEC 377. Operating Systems. Week 1 Class 3

Chapter 2: OS Overview

COURSE OUTLINE Survey of Operating Systems

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Chapter 10 Case Study 1: LINUX

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Chapter 2 System Structures

This tutorial will take you through step by step approach while learning Operating System concepts.

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

CSC 2405: Computer Systems II

Operating Systems Introduction

Chapter 6, The Operating System Machine Level

Operating System Structure

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Chapter 11 I/O Management and Disk Scheduling

A Comparative Study of CPU Scheduling Algorithms

Outline: Operating Systems

Department of Computer & Information Sciences. CSCI-445: Computer and Network Security Syllabus

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

Red Hat Linux Internals

Why study Operating Systems? CS 372. Why study. Why study. Introduction to Operating Systems

Linux Kernel Architecture

Chapter 3: Operating Systems

How To Understand And Understand An Operating System In C Programming

Chapter 3. Operating Systems

Memory management basics (1) Requirements (1) Objectives. Operating Systems Part of E1.9 - Principles of Computers and Software Engineering

Chapter 3 Operating-System Structures

Introduction. General Course Information. Perspectives of the Computer. General Course Information (cont.) Operating Systems 1/12/2005

How To Understand The History Of An Operating System

OS OBJECTIVE QUESTIONS

What s my End Result?

Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam

Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction

Operating Systems Group

Operating System Software

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

Chapter 15 Windows Operating Systems

Shrimad Rajchandra Institute of Management & Computer Application

Introduction. What is an Operating System?

IT 342 Operating Systems Fundamentals Fall 2014 Syllabus

Operating System Structures

Operating Systems. Rafael Ramirez (T, S)

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

Process Scheduling CS 241. February 24, Copyright University of Illinois CS 241 Staff

Operating Systems Concepts: Chapter 7: Scheduling Strategies

CS 450/650 Fundamentals of Integrated Computer Security

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

W4118 Operating Systems. Instructor: Junfeng Yang

Introduction. General Course Information. Perspectives of the Computer. General Course Information (cont.)

Department of Computer & Information Sciences. INFO-450: Information Systems Security Syllabus

NEW YORK INSTITUTE OF TECHNOLOGY School of Engineering and Technology Department of Computer Science Old Westbury Campus

Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.

Operating Systems PART -A

Host Hardening. OS Vulnerability test. CERT Report on systems vulnerabilities. (March 21, 2011)

Have both hardware and software. Want to hide the details from the programmer (user).

How To Understand The Principles Of Operating Systems

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

CDA Introduction to Computer Networks

X Network, Operating System, and Database Security. Fall 2014, Registration Number W. UCLA EXTENSION: Computer Science.

Operating Systems Principles

Assessment for Master s Degree Program Fall Spring 2011 Computer Science Dept. Texas A&M University - Commerce

Overview of Operating Systems Instructor: Dr. Tongping Liu

Software design (Cont.)

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

CSET 4750 Computer Networks and Data Communications (4 semester credit hours) CSET Required IT Required

CS3600 SYSTEMS AND NETWORKS

OPERATING SYSTEM SERVICES

OS Thread Monitoring for DB2 Server

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

CSC 314: Operating Systems Spring 2005

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Objectives. Chapter 5: Process Scheduling. Chapter 5: Process Scheduling. 5.1 Basic Concepts. To introduce CPU scheduling

Operating System Components

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Soran University Faculty of Science and Engineering Computer Science Department Information Security Module Specification

CSC 341, section 001 Principles of Operating Systems Spring 2015 Monday/Wednesday 1:00 PM 2:15 PM

HARFORD COMMUNITY COLLEGE 401 Thomas Run Road Bel Air, MD Course Outline

System Structures. Services Interface Structure

ICS Principles of Operating Systems

Transcription:

Course Details Department of Computer Technology & Programming CTP203 Operating Systems Syllabus Course Name: Course Credits: 4 ECTS Credits: 6 Prerequisite: CTP102 (Elementary Data Structures) Semester: 2010-2011 Fall Instructor: Serhat M. Azgur E-mail: azgur@ctp.bilkent.edu.tr Room, Phone: GZ-14A, x-3361 Office Hours: 08:30 18:00 Teaching Assistant: Engin Z. Kıraçbedel E-mail: engink@ctp.bilkent.edu.tr. Room, Phone: GZ-13B, x-3225 Office Hours: Weekdays, 08:30 18:00 Lecture hours and place: Mon: 08:40 10:30, GB53 - Wed: 10:40 12:30, GZ55 Lab hours and place: Tue: 13:40 15:30, GB53 (Lab-5) Course Description This course is designed to provide the fundamentals of operating systems and introduction to the internal operations of modern operating systems. In particular; Basic operating system concepts and structures. Particular emphasis will be given to the following major OS subsystems: o Process management; processes, threads, CPU scheduling, process synchronization & deadlocks. o Memory management; main memory, virtual memory, segmentation, paging, swapping. Protection & Security. UNIX environment. Creating Shell scripts with AWK programming language. And, whenever time permits, we briefly examine networking and case studies concerning the special applications (like MS Windows, Sun Solaris, IBM, SCO, HP/DEC OpenVMS, etc.). Aim This course is designed as three hours of lecture, two hours of computer lab applications and one hour of Self-Regulated Study. The implementation of Self-Regulated study part is designed to equip the students to identify and retrieve their information communication technology needs. Lab applications are done at the computer lab using desktop computers that are connected to our department s server system and thus access to the University network and Internet. This syllabus (hence, the course) is designed for a typical vocational school student where the goal is to introduce the basic principles of modern operating systems, the operating system as a control program and as a resource allocator. What is aimed at: provide coverage of basic computer system organization. describe the services and operating system components, which an operating system provides to users, programmers, and other information systems. Syllabus 1/5

provide enough details for a software programmer to understand how operating systems affect programming efficiency and effectiveness. understand and practice lab applications using Linux environment. Successfully write, run and debug shell scripts that can manipulate text-based data, either in files or data streams. Learning Outcomes On successful completion of this course: Students should apply key operating system design concepts (e.g. processes, threads, paging, etc.) to develop successful software systems. Students should understand and discriminate the strengths and weaknesses of scheduling policies, interprocess communication methods and memory management issues in timesharing systems. Students can understand and analyze process deadlocks in computer related applications. Students should evaluate the relevant issues that will enable them to make informed judgments about computer information protection and security. Students should be able to write, edit and run shell scripts in a Unix environment that can manipulate text-based data, either in files or data streams. Having identified the key problems and issues of processing in a multiprocessing environment, students will develop a more efficient and effective software writing style. Students should be able to recognize, describe, find and retrieve the professional information that is needed in professional life. Course Outline: Introduction to Operating Systems Operating System Concepts Operating System Structures Process Management Interprocess Communications Deadlocks Threads Memory Management, Virtual Memory Protection and Security programming Text Book: Andrew S. Tanenbaum, Modern Operating Systems: International Edition, 2/E. ISBN 0-130- 92641-8. Prentice-Hall, Inc. (which is available at the Bilkent University Bookstore). Reference Books: The following books can be consulted for different approaches or further readings (they are all available at the Bilkent University Library): Title Author BLISS-Call # Year & ISBN Operating Systems William Stallings QA76.76.O63S733 Linux İşletim Sistemi Türkiye Linux Kul. Gr. QA76.76.O63L568 0-02-415493-8 0-13-180977-6 Operating Systems Concepts Abraham Silberschatz, Peter Baer Galvin QA76.76.O63S5583 2005 0-471-69466-5 Operating Systems Milenkovic, Milan QA76.76.O63 M53 0-07-112711-9 Syllabus 2/5

Other Resources: Department of Computer Technology & Programming Lecture notes prepared by the instructor; Web references/resources. Operating Systems, A Systematic View, 6 th Edition William S. Davis, T.M. Rajkumar; Pearson Addison Wesley, 2005 (ISBN 0-321-26981-0) Instructional methods, techniques and tools: In class teaching, Lab Sessions, Labworks concerning UNIX Shell scripting using Ubuntu operating system. Subject related questions-answers and discussions on the web through Moodle, Invited guests from the Industry. Assessments &Grading: To receive a passing credit, students must achieve at least 50 percent on the course composite grade (= "D"). Although, the assessments and weights may vary from semester to semester, the weighting of the course composite grade for this semester is as follows: Weekly quizzes: 25% Labworks: 15% Midterm: 20% Final: 30% In-class participation: 10% There will be one quiz at every week, which takes place at the first lecture hour in Monday morning. Lab works are done at the computer lab with the help of the teaching assistant and there is at least one lab work that will take place every week. Lab grading will be based on the successful accomplishment of individual lab-works. Moodle Course Management System is extensively used through out the academic semester. Questions and answers of quizzes and exams can be found in Moodle together with the other related resources. Attendance: According to Bilkent University s regulations attendance is mandatory. In-class Participation, which is 10% of the final grade, is going to be decided on the following factors: Lecture attendances (although attendance is compulsory, I take roll calls). Active participation in class discussions. Reflection letter to be written at the end of the semester, and Online participation in Moodle. Academic Integrity Each student has a responsibility to understand, accept and comply with the university s standards of academic conduct as set forth by the Code of Academic Conduct, as well as policies established by the schools and colleges. Cheating, collusion, misconduct, fabrication, and plagiarism are considered serious offense. "Student Code Of Discipline" is presented in the following web page: http://www.bilkent.edu.tr/bilkent/admin-unit/hukukm/edisiplin.html Syllabus 3/5

Weekly outline: Week Lecture (based on a semester with 14 full weeks, with a week reserved for midterm) Lab 01 Introduction to Operating Systems Introduction to Operating Systems 3 Lectures General course outline. Overview of fundamental concepts. Purpose of an OS as a system. How does a computer start? 02 Operating System Concepts Introduction to Operating Systems 3 Lectures Overview of fundamental concepts. Multitasking, user-opsys interface (Batch, CLI, GUI), resource allocation, interrupts, I/O structure, storage structure (hierarchy), memory caching. Compile-link-load and execute. 03 Operating System Concepts (cont d) Operating System Concepts - 3 Lectures Operating System Services (cont d). Context switching, processes & threads. Memory Management, virtual memory and paging. Storage Management, File-System Management 04 Operating System Concepts (cont d) Operating System Concepts - 3 Lectures Disk Management, Mass Storage Management. Protection & Security. Malicious Software (malware). OS generation and system boot. Computing environments (client-server, p2p, web, grid, cloud, etc.). 05 Operating System Structures Design and Implementation - 3 Lectures Operating System Services. User-operating system Interface Batch, CLI, GUI), System Calls (types of system calls), System Programs (what are they?), Operating System Structure (Simple, Layered, Modular Approaches), Virtual Machines. 06 Process Management Processes - 2 Lectures Process concept, process control block (PCB), operations on processes, process scheduling diagrams. Context Switching - 1 Lecture Context switching; multitasking, interrupt handling, user and kernel mode switching. UNIX fork() and exec() commands. Labwork # 1 Linux environment. Login and access procedures. Labwork # 2 Simple Unix commands. Labwork # 3 Linux environment. Linux admin commands. Labwork # 4 UNIX commands, pipes and redirection. Labwork # 5 UNIX Labwork # 6 UNIX 07 MIDTERM EXAM 08 Process Management (cont d) Process Scheduling - 3 Lectures Process concept, job and process scheduling. Process scheduling algorithms (FCFS, RR, SJF, SRT, priority scheduling), Queues (multilevel and feedback queues). 09 Interprocess Management IPC - 2 Lectures Interprocess communications (IPC), Messages, direct/indirect message passing. Buffering. Producer-consumer problem. Dining Philosophers Problem. Communication deadlock. Process Synchronization - 1 Lecture Semaphores; definition, init, wait, signal operations, use of semaphores to implement process synchronization. Client-Server communication; Sockets. Labwork # 7 UNIX Labwork # 8 UNIX Syllabus 4/5

10 Deadlocks Deadlock Concepts - 1 Lecture Resource deadlock vs. communication deadlock. What is livelock? Sherable, non-sherable vs. Usable, consumable resources. Deadlock conditions and detection. Coffmann Conditions. Methods of Handling Deadlocks - 2 Lectures Deadlock Detection, avoidance, prevention and recovery. Resource Allocation Graph. Banker s Algorithm (Single Source, Multiple Sources). Ostrich algorithm. 11 Threads Threads - 3 Lectures What is a thread? How to create threads? Differences between threads and processes (advantages, disadvantages)? Thread scheduling. Thread Control Block (TCB). Where do we use threads? 12 Memory Management Main Memory - 3 Lectures Memory organization and management, secondary & tertiary memories, storage allocation, fixed/dynamic partitioning, Fragmentation (internal/external fragmentations), swapping, paging. Contiguous memory allocation & reallocation. Memory allocation algorithms (buddy system, first-fit, next-fit, best-fit and worst-fit). 13 Memory Management (cont d) Virtual Memory - 3 Lectures Virtual memory concepts, page/frame. Paging and segmentation, address mapping. Page fault. Address Interpretation, Demand paging, page replacement strategies (Optimal, FIFO, LRU, NRU). 14 Protection And Security Protection 1 Lecture Principles and objectives of protection. Types of threats and attacks. Authorization and Authentication. Passwords, access matrix, implementation of access matrix. Access rights and access controls. Security 2 Lectures Security policies. Types of Malware; user, program, system and network threats. Implementing security. Depth of defense. Firewalling to protect systems and networks. Intrusion detection. Labwork # 9 UNIX Labwork # 10 Labwork # 11 Labwork # 12 Labwork # 13 Syllabus 5/5