ITCS 3146
- Operating Systems and Networking - First Summer 2020 ( Section 080 ) - Online

Instructor: Dr. Angelina A Tzacheva, Department of Computer Science, College of Computing and Informatics,  OfficeHours:  Tuesday  - 4pm to 6pm via Skype ( Live Video Conference )     Install Skype from www.skype.com   |   call   Skype ID:   angelina.tzacheva  |  during the time of the Office Hours .  E-mail: aatzache@uncc.edu

Teaching Assistant:
1.Nava Kranthi Kumar Alimelu, OfficeHours: Friday 3:30pm to 5:00pm, Webex link: https://uncc.webex.com/uncc/j.php?MTID=m35b840fb3b5fda654efef4233d03b0b7 , Tuesday  3:30pm to 5:00pm, Webex link: https://uncc.webex.com/uncc/j.php?MTID=mc8c7d5b81cfe03a23176854bfe8b6bae, via Skype ( Live Video Conference )     Install Skype from www.skype.com   |   call   Skype ID: kranthialimelu    |  during the time of the Office Hours .  E-mail: nalimelu@uncc.edu

2. Akshaya Easwaran, OfficeHours: Monday, Tuesday  10am to 11:30 am   via Skype ( Live Video Conference ) Install Skype from www.skype.com   |   call   Skype ID:  akshuhrsh    |  during the time of the Office Hours .  E-mail: aeaswar1@uncc.edu  | Webex link - https://uncc.webex.com/uncc/j.php?MTID=m846098a31fb997920a65795670b205c2
Meeting Number - 618 732 694


Prerequisites: ITCS 2215 Design & Analysis Algorithms

Textbook:
Modern Operating Systems 4E, Andrew S. Tanenbaum, Herbert Bos, Prentice Hall, ISBN: 013359162X
*Do Not* purchase online if it takes more than 3 days to ship. Textbook is needed the first day of class.
Please *Do Not* purchase International edition version, as well as Older editions of this textbook - because the exercise numbers and page numbers do not match (used on exams and homework), and some sections are missing.

Course Outline:
- Introduction to Operating Systems
- Processes and Threads
- Memory Management
- File Systems
- Input/Output
- Introduction to Computer Networks
- OSI, UDP, TCP/IP, HTTP, WWW

Student Learning Outcomes:
1. Recongnize and Define Operating Systems Components and Computer Network Layers
2. Recognize and Solve problems in Operating Systems Implementation
3. Demonstrate Programming Skills for InterProcess Communication in Operating Systems

Course Learning Outcomes:
Upon successful completion of this course, students should be able to:
1. use operating system interfaces: interrupts and system calls;
2. program run-time environments: processes, threads, synchronization primitives;
3. understand and apply concepts of memory management (e.g., partitioning, paging) in operating
systems;
4. implement elementary networking (TCP, IP, client / server) and use inter-process communication;
5. implement a simple client-server socket-based application;
6. contrast Kernel and user mode in an operating system;
7. understand the potential threats to an operating system.

Course Objectives:
Operating systems and networks are fundamental components of modern technological systems.Today systems cannot work in isolation. The operating system is the key software layer that manages the device hardware and the network stack that allows multiple devices to communicate. The aim of this course is to provide computer science undergraduate students with fundamental concepts in operating systems such as process, file and memory management and inter-process communication. Similarly a major aspect of the course is to understand key network components and protocols such as the OSI Model, MAC, IP routing and TCP/UDP, HTTP protocols. Students learn through several hands-on activities how to setup and configure infrastructure focusing on the use of the command line terminals in Linux, writing shell scripts, access control rules as well as configuring common network services such as DNS, SSH and firewalls.

Instructional Method:
This is an Online course. This course takes case and project approach, complemented by lectures, exercises, and group activities. Activle Learning Activites are used once per week.
Lectures Notes, Videos, and Reading Assignments are posted in the syllabus table below, as well as on Canvas. Please download and read each lecture material, and view each Video on the specified day. Exercises and VideoCases are assigned after each chapter.
All material by date is listed, including preparation for the exams with sample questions. The exams are open-book / open-notes. The exams are available through Canvas and can be completed at any time on the assigned day. The textbook is necessary, as exam questions are based on lecture notes AND on the text.
There is a group project assignment, and students are expected to idenfity and communicate with their group members, meet with them ( live or online ex. via Skype, GoogleHangout ), and particiapte in the group activities.

Credit Hours: This is a 3 credit hour course.
This is a condensed summer course, which takes 5 weeks to complete. This course is designed to require about 21 hours per week - for readings, exams, exercises, video cases, and group project work.
The material is technical, and requires dedication of time to comprehend.  To complete course successfully, Please   do not plan on   cramming  all lectures the day before the exam. Designate 3 hours every lecture day for reading the given lecture, and book chapter. Designate additional 6 hours per week for Exercises, VideoCase assignments, and Group meetings / activites.
Exercises are assigned after each chapter. The Exercises are due on Canvas on the dates they are assigned. Exercises are *not accepted* through e-mail. Late Exercises are not accepted.

Grading:
The final course grade is determined on the following weights:
Exam I   18%
Exam II   18%
Group Project   18%
Final Exam   18%
Exercises   18% (there are 18 Exercises: each is worth 1 point + 2 for ExtraCredit)
VideoCases   10%

Gradig scale:
The final course letter grade is determiend as follows:
A   90% - 100%
B   80% - 89%
C   70% - 79%
D   60% - 69%
F   less than 60%
X   academic dishonesty

Gradig Enquiries:
Grades to all Exercises, Exams, and Project are posted on Canvas shortly after the assignments are due. Students are expected to observe their grades on Canvas, and e-mail TA and Instructor immediately if they notice any issues . Students who have questions or concerns about their final CourseTotal grade are expected to e-mail the TA and Instructor at least 1 week prior to letter Grades being assigned on Banner registration system ( my.uncc.edu ) . The letter grades Due date is found on the University Calenadar (  registrar.uncc.edu/calendar ) at the end . Once the letter grades are assigned and rolled on Banner registration system , we are unable to change the grades anymore .

Academic Integrity and Honesty:
Students are required to read and abide by the Code of Student Academic Integrity availbe from Dean of Students Office. This code forbids cheating, fabrication or falsification of information, multiple submissions of academic work, plagiarism (including viewing others work without instructor permission), abuse of academic materials, and complicity of academic dishonesty. Violations of the Code of Student Academic Integrity, including plagiarism, result in disciplinary action as provided by the Code.

Civility:
We are concerned with a positive learning experience. This course strives to create an inclusive academic climate in which the dignity of all individuals is respected and maintained. We value diversity that is beneficial to both employers and societey at large. Students are encouraged to actively and appropriately share their views in class discussions.

Inclement Weather:
University Policy Statement #13 states the University is open unless the Chancellor announces that the University is closed.  The inclement weather hotline number to call is 704-687-1900. In the event of inclement weather, check your e-mail, and Canvas. The instructor will post a message on Canvas, and through e-mail. The instructor will use their best judgment as to whether class should be held.

Disability:
If you are a student with documented disabilty please contact the Office of Disability Services for accommodation.

Withdrawal:
The University policy on Course Withdrawal allows students a limited number of opportunities available to withdraw from courses. There are financial and academic consequences that may result from course withdrawal. If a student is concerned about his / her ability to succeed in this course it is imporant to make an appointment to speak with the instructor as soon as possible.

Syllabus Revision:
The instructor may modify the class schedule and syllabus during the course of the semester. For example - additional educational vidoes may be posted, PowerPoint links, VideoCase links, or other hyperlinks may be updated. Same changed will appear on Canvas. Students are responsible for refreshing their syllabus once per week.

E-Mail Communication:
Students are responsible for *all* announcements made in class and on the class online resources. Students should check the online class resources throughout the semester. The Instructor and Teaching Assistants send occasional e-mails with important information. We send this information to the student's UNCCharlotte e-mail address listed on Banner system. If a student is not checking his / her UNCCharlotte e-mail address ( ex. userName@uncc.edu ) please be sure to access this e-mail and check it regularly during this course.

Class Expectation:
By attending class beyond the first week, students agree to follow the framework and rules related to this course as described above.


Syllabus:
Date
Material
May 18
Preview of course syllabus         |         Find your Group - members here     for the Group Project
Group Project Assignment      |    ExampleProject1  |  ExampleProject2  |  ExampleProject3

Opearting Systems
Chapter 1 - Introduction                     What is Operating System, History, Hardware Review, OS Zoo
Read   Chapter 1.1 - 1.4   from textbook today.
VideoCase01:_HistoryOfOS

video: Ch1.1_1.4_01WhatIsOperatingSystem

video: History of Operating Systems
May 19
OS Concepts, System Calls, OS Structure, World in C
Read   Chapter 1.5 - 1.8   from textbook today.
Exercises:    5.    and    17.   chapter 1         //to turn in: upload to Canvas (canvas.uncc.edu)

Exercise 1-2: C++ Basic Concepts

video: Ch1.5_1.8_01OSConceptsSystemCalls
video: Ch1.5_1.8_02MetricPrefixes

video: Operating Systems - Introduction          video: How a Linux System Call Works
May 20 Chapter 2 - Processes and Threads 
Alternate Slides                 |                Processes, Threads
Read      Chapter 2.1 - 2.2     from textbook today.
Exercises:     27.    chapter 1      and      12.   chapter 2
VideoCase02:_ProcessesAndThreads

video: Ch2.1_2.2_01ProcessesAndThreads

video: Process Manager Part1       
May 21 Activities 1:
                                                                 Interprocess Communication
Read    Chapter 2.3     from textbook today.

video: Ch2.3_01InterProcessCommunication
video: Ch2.3_02InterprocessQuestions

PlayCode:_01_DiningPhilosophers          |         video: Ch2.3_03DiningPhilosophersDemo

video: Dining Philosophers  video: Dining Philosophers OS   video: Dining Philosophers Problem
May 22                                                                  Scheduling, Classical Problems
Read     Chapter 2.4 - 2.5    from textbook today.
Exercises:      26.    and     55.     chapter 2

video: Ch2.4_2.5_01SchedulingAlgorithms
video: Ch2.4_2.5_02SchedulingClassicalProblems

video: Process Manager Part 2

video: Process Scheduling FCFS        video: Process Scheduling SJF        video: Round Robin
May 25 Chapter 3 - Memory Management      Abstraction, Virtual Memory
Read    Chapter 3.1 - 3.3    from textbook today.
VideoCase03:_MemoryManagement

video: Ch3.1_3.3_01MemoryManagementHierarchy
video: Ch3.1_3.3_02VirtualMemoryAbstraction
video: Ch3.1_3.3_03Swapping
video: Ch3.1_3.3_04Paging
video: Ch3.1_3.3_05MMUPageTableEntry

video: Memory Manager           
May 26 Activities 2:
Alternate Slides         |       Alternate Slides 2      |  Page Replacement Algorithms, Design Issues, Implementation
Read      Chapter 3.4 - 3.6    from textbook today.
Exercises:        4.    and     36.      chapter 3

video: Ch3.4-3.6 01PageReplacementAlgorithms
video: Ch3.4-3.6 02PageReplacementQuestion

PlayCode:_02_LeastRecentlyUsed         |       video: Ch3.4-3.6 03LeastRecentlyUsedDemo

video: Page Replacement Basics     video: FIFO      video: LRU     video: LRU Approximation

video: Page Replacement Optimal

Preparing for Exam I           Sample Question           Answer Key
May 27
Memorial Day - No Class
May 28
Exam I
- access exam on Canvas
- may complete exam any time of the day today (finish no later than 11:55pm)
- allowed time for exam is:       3:00 hours
May 29
Activities 3:
Alternate Slides                 |    Alternate Slides 2  |    Segmentation 
Read     Chapter 3.7    from textbook today.

video: Ch3.7 01Segmentation
video: Ch3.7 02SegmentationQuestions

PlayCode:_03 Paging with MULTICS            |             video: Ch3.7 03DemoPagingWithMultics

video: GRE Question Paging
June 1
Chapter 4 - File Systems                       Files, Directories
Read     Chapter 4.1 - 4.2   from textbook today.
Exercises:       47.   chapter 3       and      10.     chapter 4
VideoCase04:_FileManager

video: Ch4.1_4.2_01Files
video: Ch4.1_4.2_02FileTypes
video: Ch4.1_4.2_03DirectoriesPaths

video: File Manager
June 2
File System Implementation
Read     Chapter 4.3     from textbook today.

video: Ch4.3_01FileSystemLayout
video:Ch4.3_02ContiguousAllocationLinkedList
video: Ch4.3_03FileAllocationTableFAT iNodes
video: Ch4.3_04iNodes2
video: Ch4.3_05DirectoriesImplementation 
June 3
Activities 4:
Alternate Slides                  |                 Management and Optimization, Example File Systems
Read     Chapter 4.4 - 4.5    from textbook today.
Exercises:       26.       and       42.        chapter 4

video: Ch4.4_4.5_01DiskSpaceManagement
video: Ch4.4_4.5_02DiskQuotaFileSystemInconsistency
video: Ch4.4_4.5_03MSDOS_FAT16_FAT32_UNIXv7_CDROM
video: Ch4.4_4.5_04ManagementFileSystemsQuestions

PlayCode:_04_Utilityprogramtocheckfilesystemconsistency  |
video:Ch4.4_4.5_05FileSystemConsistencyDemo

video: The Linux File System              video: Verifying File System Consistency
June 4
Chapter 5 - Input/Output                        I/O Hardware, I/O Software, Software Layers
Read     Chapter 5.1 - 5.3     from textbook today.
VideoCase05:_InputOutput

video:Ch5.1_5.3_01InputOutputController
video:Ch5.1_5.3_02MemoryMappedIO_DMA
video:Ch5.1_5.3_03InterruptsIOSoftwareLayers

video: Device Manager Part1              video: Device Manager Part2
June 5
Activities 5:
Alternate Slides                   |                  Disks
Read     Chapter 5.4    from textbook today.
Exercises:        3.        and       31.        chapter 5

video:Ch5.4_01Disks
video:Ch5.4_02FCFS_ShortesSeek_Elevator
video:Ch5.4_04DisksQuestions

PlayCode:_05_Disk Arm Scheduling Algorithm First-Come,First-Served(FCFS)  |  video:Ch5.4_03ElevatorDemo

video: Hard Drive Data Recovery           video: Disck Scheduling Algorithms
video: Magnetic Disk and Working         video: RAID Levels
June 8

Alternate Slides                   |                  Clocks, User Interfaces: Keyboard, Mouse, Monitor, Power
Read     Chapter 5.5 - 5.8     from textbook today.
Exercises:         45.        and       54.      chapter 5

video: Ch5.5_5.8_01ClocksUIKeyboardMouseMonitorPower
video: Ch5.5_5.8_02ClocksUIMouseKeyboardQuestions
video: Ch5.5_5.8_03ClocksUIMouseKeyboardQuestions
video: Ch5.5_5.8_04SystemClockDemo

video: End of Time (Unix)

Preparing for Exam II             Sample Questions           Answer Key
June 9
Exam II
- access exam on Canvas
- may complete exam any time of the day today (finish no later than 11:55pm)
- allowed time for exam is:       3:00 hours
June 10
Activities 6:
Chapter 6 - Deadlocks                            Resources, Introduction
Read     Chapter 6.1 - 6.3      from textbook today.
VideoCase06:_Deadlock
video: Ch6.1_6.3_01DeadlocksResourcesIntroduction
video: Ch6.1_6.3_02ResourceAquisition
video: Ch6.1_6.3_03DeadlockDefinition
video: Ch6.1_6.3_04CircularWaitResourceAllocationGraph

video: Deadlock Basics Babies 
June 11 Activities 7:
Alternate Slides                   |           Alternate Slides 2         |        Detection, Avoidance, Prevention, Other Issues
Read     Chapter 6.4 - 6.7     from textbook today.
Exercises:      9.      and       39.      chapter 6
                                              //definition of sempahore is on p. 130, fig. 2-28 (chapter 2.3)
video: Ch6.4_6.7_01DeadlockDetectionAvoidancePrevention
video: Ch6.4_6.7_03DeadlockQuestions

PlayCode: 07_Programthatdetectsifthereisadeadlockbyusingresourceallocationgraph           |       
video: Ch6.4_6.7_02ResourceAllocationGraphDemo

video: Deadlock in TelAviv             video: Banker's Algorithm               The_Deadlock_Problem
June 12 Chapter 7 - Virtualization and the Cloud           Virtualization History, Requirements, Hypervisors
Read      Chapter 7.1 - 7.10      from textbook today.
VideoCase07:_VirtualizationAndCloud
video: Ch7.1_7.10_01WhyDoWeNeedVirtualization
video: Ch7.1_7.10_02VMMRequirementsForVirtualization
video: Ch7.1_7.10_03Type1Type2HypervisorsParavirtualization
video: Ch7.1_7.10_04GuestOSUserModeKernelModeRingsMicrokernels
video: Ch7.1_7.10_05VirtualMachineIntrface

video: Type 1 and Type 2 Hypervisors        
June 15
Activities 8:
Alternate Slides            |                Alternate Slides 2           |        Clouds, Case Study: VMWare
Read     Chapter 7.11 - 7.13     from textbook today.
Exercises:        1.       and      21.      chapter 7

video: Ch7.11_7.13_01CloudLiveMigrationVMWare
video: Ch7.11_7.13_02NestedVMs_CloudResearch
video: Ch7.11_7.13_03CloudVMWareQuestions

PlayCode: 08_ASimulationofMMU           |        video: Ch7.11_7.13_04VirtualMemoryDemo

video: What is Cloud Computing?                        
June 16
Chapter 9 - Security                             Environment, ControlledAccess, Cryptography, Authentication
Read     Chapter 9.1 - 9.6     from textbook today.
VideoCase08:_Security

video: Ch9.1_9.6_01SystemSecurityEnvironment
video:Ch9.1_9.6_02BasicsOfCryptography
video: Ch9.1_9.6_03SymmetricKeyMonoalphabethicSubstitution
video:Ch9.1_9.6_04DigitalSignaturesProtectionDomainsACLsCapabilities

video: Symmetric Encryption (Secret Key)           video: Assymetric Encryption (Public Key)          

video: iPhone Fingerprint Scanner        

Activities 9:
Alternate Slides                  |                 ExploitingSoftware, InsiderAttacks, Malware, Defences
Read     Chapter 9.7 - 9.10     from textbook today.

video: Ch9.7_9.10_01ExploitingSoftwareInsiderAttacksDefences
video: Ch9.7_9.10_02ExploitingSoftwareQuestions

PlayCode: 09_ASimulationofBufferOverflowAttack       |   video: Ch9.7_9.10_03BufferOverflowDemo

video: Buffer Overflow Attack  
June 17
Computer Networks
Introduction  -  Uses of Computer Networks, Hardware, Software

 Alternate Slides      |     Reference Models, Example Networks  
VideoCase09:_OSI

video: Ch1.1_1.3_01ComputerNetworksBusinessHomeUses
video: Ch1.1_1.3_02ComputerNetworksMobileUsesSocialIssues
video: Ch1.1_1.3_03NetworkHardwareTypesOfNetworks

video: OSI Reference Model
June 18
Project Files and Source Code Due   //to turn in: upload to Canvas

The Network Layer  -                             Alternate Slides      |     IP (Internet Protocol)
VideoCase10:_IPAddress

video: Ch5.6_01NetworkLayerInternetArchitecture
video: Ch5.6_02InternetProtocol_IPv4_IPv6 
video: Ch5.6_03IPAddressNetworkHostPart
video: Ch5.1_5.2_04RoutingStoreAndForward
video: Ch5.1_5.2_05Routing
June 19

The Transport Layer  -                           UDP and TCP

video: Ch6.1_6.2_01TransportLayerOverview
video: Ch6.5_6.7_02TCPConnectionSocketsPorts
video: Ch6.3_6.7_03TCPServiceModelCongestionControlUDP

video: all about UDP 

video: TCP vs UDP         
June 22
The Application Layer -                         WWW     and     HTTP
video: WWW

Preparing for Final Exam               Sample Questions               Answer Key
June 23
Final Exam
- access exam on Canvas
- may complete exam any time of the day today (finish no later than 11:55pm)
- allowed time for exam is:       3:00 hours

Syllabus Copyright 2015-2025 Angelina A Tzacheva.
No reusage or reproduction without permission.