Operating Systems and Networks
Dr. . Reyes, Ph.D.
Computer Science
Copyright By PowCoder代写 加微信 powcoder
School of Mathematical and Computational Sciences
Rm. 3.13 MS Building, Albany Campus
Lectures will be delivered online.
Links to video lectures will be made available via the Stream website.
Consultation Hour:
Wednesdays: 4pm-5pm
Topics for Discussion
Pre-requisites
Course Overview
Learning Outcomes
Texts and Course Material
Assessment
Course Schedule
Pre-requisites
To take this course, the student must have passed 159.201 or 159.234, since knowledge of data structures and pointer arithmetic is assumed.
Students are expected to have intermediate programming skills in C (or C++) language.
Assignments are aimed at designing and implementing a selection of network protocols and memory management strategies.
Computer Networks: A top-down approach is used in this paper. The course begins with the application layer and works towards the physical layer. The students should benefit from this approach because they usually already have some experience with the applications, and the explanations related to the other layers are presented in inverse order. It is also beneficial to motivate students to search and learn in depth from the start. The main focus is the Internet and the topic of discussions are organized around the top three layers of the internet protocol stack.
Operating Systems: The main focus is on the operating system structures, CPU scheduling and memory management.
Note: There is a new course (159341) that focuses on Concurrent Programming and so that topic is now dealt with in that course.
Design and implement computer programs that use network communication.
Learning Outcomes
Describe key computer network concepts, architectures and protocols.
Explain and implement the use of cryptographic techniques in network security.
On successful completion of the course, the students should be able to:
Identify and discuss the structure of the major components of an operating system.
Describe various scheduling algorithms that operating systems use to schedule tasks.
Explain virtual memory and implement the operation of memory management units.
Texts and Course Material
http://stream.massey.ac.nz
Lecture slides, assignment instructions, codes
Recommended Reading
Kurose, J.F. And Ross, K. W., Computer Networking: a Top Down Approach, , 6th edition (or later)
Data communications and networking / Behrouz A. , A., and Bos, H., Modern Operating Systems, Pearson, 4th edition. ISBN-13: 978-0133591620, ISBN-10: 013359162X
Silberschatz, A., Galvin, P., Gagne, G., Operating System Concepts, Wiley Publishing (any edition). e.g. ISBN:978-1-118-06333-0
Assessment
3 assignments: 40%
Final Exam (compulsory; 3 hours): 60%
Deadline: Deadlines for assignments will be given when assignments are distributed. You will be given at least 3 weeks to complete each assignment.
Penalty: Late submissions (up to 1 week) will be penalised by 10% per day.
To pass, students have to obtain a cumulative assessment score greater than or equal to 50%.
Bring your calculator
Assessment
Assessment Tentative Due Date / Deadline Late Penalty Course completion requirement
Assignment 1 22/April -10% per day n/a
Assignment 2 17/May -10% per day n/a
Assignment 3 7/June -10% per day n/a
Final Exam (exam timetable) compulsory
Assessment
Description Learning Outcomes Assessed Contribution to Course Marks
1 2 3 4 5 6
Assignments 40.00%
Final Exam 60.00%
Assessment
Program solutions must compile using the recommended gcc compiler and must successfully run in Windows 10 or later.
Late assignments will be penalised (-10% per day)
Assignments may be completed in groups of at most 3 members in a group. All members of the group must be named in the source file of each assignment, including the contribution of each member.
All submitted assignments will have to be accompanied by a short documentation as well.
Only one assignment submission is required per group.
Assessment
Each group member will receive the same grade.
Students in a team have the authority (in consultation with the lecturer) to “expel” any member who does not meet obligations .
The collaboration is limited only to members within each group.
It is the students’ responsibility to check their assignment marks and notify in writing any errors they might find no later than 10 days after the day the marks were made available.
Requirements for completing the course
To complete this course you will need to attend the Final Exam (compulsory) and submit the assignments.
You also need to achieve an average value of at least 50% of the sum of the assessment items.
What is this course all about?
Low-level programming
Socket level programming
Memory management
Network Protocols, Operating System Structures and Services
TCP/IP, UDP, reliable data transfer, cryptography, CPU scheduling, memory management, etc.
Not Client side Graphical User Interfaces
IT (157.___!)
Not a “how to” design a cool fancy website
Not a “how to” write concurrent programs (159.341!)
Relation to other courses
Programming Languages, Algorithms and Concurrency (159341)
– Concurrent programming, programming languages, etc.
Internet Programming (159339)
– Technologies that support Web based applications
– Server-Side Application Programming
– Client-side programming
– Database-driven applications
Client-side Graphical User Interfaces
– Courses offered by IT (158.XXX)
– (Designing cool websites)
.NET programming
– IT courses
– Microsoft training courses
Relation to the Internet Protocol Stack
Let’s have a look at one concrete example that we could all relate with, in order to put things into context.
PC running
Firefox browser
Apache Web
iphone running
Safari browser
info.cern.ch
Peek behind the hood
Client: makes a request
Client (browser)
Web browser
Web server
requests an Internet resource (web page with PHP code) by
specifying a URL and providing input via HTTP encoded strings
Network Core
GET hello.php HTTP/1.1
Host: info.cern.ch:80
http://info.cern.ch/hello.php
the PHP file contains MySQL statements in the code.
HTTP message
Web browser
Web server
Operating System
interpreter
Webserver supports HTTP.
Server: responds
Application layer
Transport layer
Network layer
Data Link Layer
Physical Layer
Hard drive
Host receives a request for hello.php
In this paper, we will study the fundamental protocols focusing on the top 3 layers.
Web browser
Web server
Operating System
interpreter
Server: responds
Operating System
MySQL server could be
anywhere in the world
In this paper, we will write our own server!
Web browser
Web server
Operating System
interpreter
Server: responds
Operating System
MySQL server could be
anywhere in the world
we will write our own server!
Write our own client!
Encrypt/decrypt messages, etc.
Reliable data transfer protocols
Routing protocols (including a bit of Artificial Intelligence)
TCP/IP Socket Programming
Operating System
Memory Management
OS: Memory Management
Operations generate a sequence of memory allocation and deallocation requests
In this paper, we will write our own malloc!
Depending on the size and sequence of allocation and deallocation requests, it is inevitable that the memory will get fragmented. Therefore, the memory blocks need to be coalesced and freed dynamically in the fastest way possible.
CPU Scheduling
File System
Course Schedule
Course Schedule
How to approach your study?
Each week covers a specific set of concepts, technologies, protocols and/or algorithms, organised around the “layers” of a network architecture and an operating system architecture. You benefit if you do:
Attend lectures.
Read the relevant lecture and reference materials that refer to the topics presented on that week.
Study the relevant codes posted on Stream for the topic. It is beneficial to run the codes on a local area network (e.g. home network), using two machines, in order to actually experience how the network applications work.
Note that all the assignment codes will be tested and marked on a Windows 10 environment; therefore, you should set-up a machine running the same operating system. Nevertheless, in the lectures, a cross-platform approach to socket programming will also be discussed.
How to approach your study?
Solve the tutorial questions provided for the topic. Some protocols/algorithms require some mathematical computations; therefore, you should solve the problem sets that accompany the topics, to check and see if you misunderstood something.
Complete the assignments on time. The lecture slides and start-up codes contain important clues that help with the completion of the assignments.
It is very important to code, compile, debug and run your own programs.
/docProps/thumbnail.jpeg
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com