Download GC University Lahore

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Copland (operating system) wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

RSTS/E wikipedia , lookup

DNIX wikipedia , lookup

Library (computing) wikipedia , lookup

Security-focused operating system wikipedia , lookup

Burroughs MCP wikipedia , lookup

VS/9 wikipedia , lookup

Spring (operating system) wikipedia , lookup

Paging wikipedia , lookup

Distributed operating system wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Transcript
GC University Lahore
Department of Computer Science
BS (Computer Science)
Year III Semester V
Operating Systems and System Programming
Index:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Course Outline
CV
Syllabus
Weekly Lecture Plan and Execution
Attendance Record
Mid Term Paper
Assignments
Quizzes
Sessional Marks
GC University Lahore
Department of Computer Science
BS (Computer Science)
Year III Semester V
Operating Systems and System Programming
Course Outline
Course Title:
Operating Systems and System Programming
Course Code:
Course Duration: 6 Hours Weekly ( 4 hours theory + 2 hours lab)
Course Credit: 4 CrHrs.
Course Instructor: Saeed ur Rehman Turk
Course Description
This course aims to familiarize students with in-depth concepts of theoretical and
applied nature of Operating Systems. All modern high performance computer systems
are managed by robust, secure and scalable operating systems. Modern high-end
operating systems are multitasking, multiprocessing and multi-user. All desktop
Operating systems and most of server operating systems provide GUI features also.
All or most OS are modularized, configurable and customizable. For this
purpose, OS vendors also release development support for utilizing advance OS
features. System programming is the area in which advance features and internal
structure of OS is employed in user-developed programs. Such development is
supported by special library functions, API, class libraries, System Development Kits,
Kernel and services libraries etc and is always highly dependent to the specific release
of OS. Advance System capabilities like High Performance CPU computing power, I/O
access, Optimization, Network programming, Driver development and interfacing is also
considered a system programming domain.
Pre-Requisite:
Programming Fundamentals/OOP. DLD & System Architecture.
Co-Requisite:
Course Book:
 Operating System Concepts. Silberchatz Galvin. 8th Ed.
 Operating Systems by Tenenbam
Course Goals and Objectives:
Chapter 1. Introduction.
Objective1. Discuss OS Organization, architecture, structure and operations.
Objective2. Explain Process, memory and storage concepts.
Chapter 2.
System Structures
Objective1.
Objective2.
Objective3.
Objective4.
Operating System Services.
User-System Interface.
System Calls and System Programs.
OS Design and Implementation.
Chapter 3.
Process Concept
Objective1.
Objective2.
Objective3.
Objective4.
Process concepts.
Process Scheduling.
Operations on Processes.
Inter-Process Communication and practical implementations.
Chapter 4.
Objective1.
Objective2.
Objective3.
Objective4.
Multithreaded Programming.
Discuss Thread Models
Thread Libraries.
Threading Issues.
Thread implementation in various OS.
Chapter 5. Process Scheduling.
Objective1. Concepts and Scheduling Criteria.
Objective2. Scheduling algorithms.
Objective3. Multi-Thread vs Multiprocessor scheduling.
Objective4. OS implementation.
Objective5. Evaluation of Different Algorithms.
Chapter 6.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Process Synchronization.
Critical Section Problem and solution
Hardware Synchronization.
Classical Synchronization Problems and solution.
Monitors and other examples.
Atomic Transaction Techniques.
Chapter 7.
Objective1.
Objective2.
Objective3.
Deadlocks
Deadlock Characterization
Deadlock handling Problems.
Deadlock Prevention, Avoidance, detection and recovery.
Chapter 8.
Objective1.
Objective2.
Objective3.
Objective4.
Memory Management Strategies.
Memory Swapping.
Allocation and paging techniques. Page table structures.
Segmentation and strategies.
Intel Pentium Memory Design.
Chapter 9.
Virtual Memory Management.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Objective6.
Objective7.
Demand Paging.
Copy on write.
Page Replacement Algorithms.
Frame allocation and thrashing.
Memory mapped File.
Kernel Memory.
OS Implementation and Examples.
Chapter 10.
Objective1.
Objective2.
Objective3.
Objective4.
Storage Management.
File Concept, and File Access Methods.
FAT: Directory and Disk structure.
Linux: File System Mounting.
Sharing and Protection.
Chapter 11.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Implementing File Systems.
File System Interface.
File System Implementation.
Directory Implementation.
Free space management and Allocation methods.
Efficiency, Performance, Recovery issues.
Chapter 12.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Chapter 13.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Chapter 14.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Chapter 15.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Objective6.
Secondary Storage Management.
Overview of Mass storage structures.
Large Disk based systems structure, attachment and scheduling.
Swap- space management, RAID structures.
Stable storage implementation.
Tertiary and Offline storage structures.
I/O Systems
I/O Hardware
Application Interface vs Kernel I/O subsystems.
Transforming IO requests to HW operations.
STREAMS design.
Performance issues.
Protection and Security.
System Protection.
Goals, Principles and Domain of Protection.
Access Matrix and Implementation.
Access Control strategies.
Capability Based and Language Based systems.
System Security.
The Security Problem.
Program Threats, System and Network Threats.
Cryptography.
User Authentication.
Implementing Security Defense.
Firewalls.
Objective7.
Objective8.
Chapter 16.
Objective1.
Objective2.
Objective3.
Objective4.
Chapter 17.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Chapter 18.
Objective1.
Objective2.
Objective3.
Objective4.
Objective5.
Objective6.
Computer Security Classification.
Windows XP and vista examples.
Distributed Systems.
Motivation and types of network based OS.
Network Structures and Topologies.
Communication Structures and protocols.
Robustness issues.
Distributed File System.
Naming and Transparency.
Remote File Access.
State-full vs Stateless Service.
File Replication
AFS Example.
Distributed Synchronization.
Event Ordering.
Mutual Exclusion.
Atomicity.
Concurrency Control.
Deadlock Handling.
Election Algorithms.
Task 1. System Programming Framework
Objective1. Introduction of MFC.NET framework.
Objective2. Brief detail of a system win32/MFC system Application.
Task 2. Multithreading.
Objective1. Introduction to thread programming.
Objective2. User and system threads.
Objective3. Writing a complete multithreaded program.
Task 3. Scheduling Algorithms and OS Implementation.
a. Simulation of Scheduling Algorithms.
b. Thread Scheduling and Multiprocessor scheduling Simulation.
c. Algorithms Evaluation.
d. OS Examples.
Task 4. Process Synchronization.
a. Critical Sections.
b. Semaphore, Mutex, Event and Monitors. Hooks.
c. Deadlock Simulation
d. OS deadlock handling.
Chapter 19. IPC and network programming.
Objective1. Socket programming.
Objective2. Protocol development.
Objective3.
Objective4. Critical sections, Event, thread, introduction and code examples
Task 5. Network Programming.
Objective1. Basic Socket and protocol concepts.
Objective2. Writing a socket client.
Objective3. Writing a socket server.
Task 6. DLL’s Services and protocol Servers
Objective4. Writing DLL and including them in other applications.
Objective1. Writing a Service and registering it using REGSERVER.
Objective2. Writing a protocol service, Generating GUID, protocol string, port and
socket binding.
Teaching and Learning Strategy:
This course will be taught by the combination of theoretical and programming lectures.
Theoretical Lectures will be used to provide in depth and conceptual Knowledge base
for each goal. Lectures with programming demonstration will be used to provide the
practice and applied knowledge/understanding of the concepts learned through
theoretical concept. Combination theory and programming will help students to develop
their program writing and application designing skills. Assignments and quizzes will be
used as assessment tool to ensure and monitor students learning progress.
Assignments will be based on theoretical, programming and application designing
concepts in order to ensure that student has grasped the issues of windows
programming.
Time Management:
Operating Systems Portion

Chapter 1-2:
1 Week

Goal 2:
1 Week

Goal 3:
1 Week

Goal 4:
1 Week

Goal 5:
1 Week

Goal 6:
2 Weeks

Goal 7:
2 Weeks

Goal 8:
2 Weeks

Goal 9:
2 Weeks

Goal 10:
2 Weeks
System Programming.

Goal 11: 1 week( parallel to OS Portion)

Goral 12: 2 weeks

Goal 13: 2 Weeks

Goal 14
3 Weeks

Goal 15
3 Weeks
Assessment Strategy:
Semester work:
20%
Mid Exam:
30%
Final Term:
50%
Student’s performance will be evaluated through writing and practical exams,
assignment, quizzes and exercises delivered to them during semester.
Recommended Text Books:

Silberschatz, A. Operating Systems Concepts, 7th ed.
GC University Lahore
Department of Computer Science
BS (Computer Science)
Year II Semester IV
Visual Programming
WEEKLY LECTURE PLAN AND EXECUTION
Planned
Weeks
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
GOALS
Goal 1
Goal 2
Goal 3
Goal 4
Goal 5
Goal 6
MID TERM
Goal 7
Goal 8
Goal 8
Goal 9
Goal 9
Goal 10
FINAL TERM
Actual Implementation
Week
Activity