Course title
L09500002
Operating Systems and Exercises

SUGAYA Midori Click to show questionnaire result at 2018
Course description
Today's computer systems are becoming more sophisticated and complex. There is an operating system as a basic system that supports a computer system.
In this class, students will program using the function of operating system through using the system call that is the API of the operating systems. It is the bottom of the software (hereinafter abbreviated as OS) using system calls, which are APIs that call OS functions, and practically learn the effects of description on performance.

All lectures will include exercises, and in the development of files, multitasking, signals, and multithreading that handle variable-length data, and in network socket programming that applies these, we will develop a multitasking server as an integrated technology for these. Through this exercise, you will be able to understand the advanced sharing of memory and CPU, and the development of software that realizes high-performance servers and cloud systems. Understand that you can use the resources of your computer efficiently.
Purpose of class
The purpose is to understand the concept of system calls, which are the API of the OS, and how to use them practically, and to acquire the technical ability to master them.
Understand programming that abstracts the CPU and memory of the OS, such as files, multitasking, signals, and multithreading, and work to improve performance.
In addition, students will develop socket programming that realizes a virtual network and a multitasking server that integrates. Through this exercise, students will understand how to use computer resources efficiently, such as advanced sharing of computer resources such as memory and CPU, and obtain a deeper understanding of software development that realizes high-performance servers, clouds, and middleware.
Goals and objectives
  1. Understand and implement the concept of system calls, which are the basics of UNIX, libraries, and OS APIs.
  2. Understand programming that abstracts the CPU and memory of the OS, such as files, multitasking, signals, and multithreading, and can evaluate and improve performance.
  3. Understand network programming using socket communication and design multitasking servers and clients.
  4. In socket communication, it is possible to design and implement a multitasking server that shares variable length data between clients in the multitasking server.
Relationship between 'Goals and Objectives' and 'Course Outcomes'

Assignment Development(Final Presentation) Total.
1. 30% 0% 30%
2. 30% 0% 30%
3. 10% 15% 25%
4. 0% 15% 15%
Total. 70% 30% -
Evaluation method and criteria
Evaluation method: Exercise tasks and report tasks are set to 100 points, and a total score of 60 points or more is passed.
Evaluation Criteria: The criteria for 60 points is to properly perform exercises and report assignments.
Language
English
Class schedule

Class schedule HW assignments (Including preparation and review of the class.) Amount of Time Required
1. Introduction History of OS 100minutes
150minutes
2. Shell Programming, Standard C library, development environment. Ubuntu setup, materials 150minutes
3. Development Environment, API Practice using distributed PDF, and programming 200minutes
4. String manipulation, file input / output
File (high level file)
Performance evaluation (development of analysis software)
Practice using distributed PDF, and programming 200minutes
5. Process (1)
--What is multitasking?
--Process control
Practice using distributed PDF, and programming 200minutes
6. Thread programming (1)
・ What is multithreading?
・ Multi-thread programming
Practice using distributed PDF, and programming 200minutes
7. Time, interrupt, signal Practice using distributed PDF, and programming 200minutes
8. Socket programming (1)
・ Client-server communication
・ Development of client programs
Practice using distributed PDF, and programming 200minutes
9. Socket programming (2)
・ Development of server program
・ Development of client-server program
Practice using distributed PDF, and programming 200minutes
10. Socket programming (3)
・ Advanced socket programming
・ Network programming (multitask server)
Practice using distributed PDF, and programming 200minutes
11. Multitasking server service using sockets, ideas Practice using distributed PDF, and programming 200minutes
12. Multitasking server service using socket, design / implementation Practice using distributed PDF, and programming 200minutes
13. Multitasking server service using socket, design / implementation Development of network program 200minutes
14. Multitasking server service using socket, design / implementation(Presentation/Report) Presentation and Demonstration 200minutes
Total. - - 2800minutes
Feedback on exams, assignments, etc.
ways of feedback specific contents about "Other"
Feedback in the class The content submitted in assignments and reports will generally be explained during class or in the next class. If you have any questions outside of class, we will respond via Slack etc.
Textbooks and reference materials
1. Operating System Concepts, 8 and 9th edition, Silberschatz, Galvin, & Gagne
2. Understanding UNIX/LINUX Programming: A Guide to Theory and Practice, Bruce Molay, Prentice Hall; 1st version (2002/11/25), 11,200
Prerequisites
C language, Operating System Course
This class focuses mainly on exercises in System Call Programming. It is preferable that you have already taken Operating Systems in a Computer Science course in your faculty. If you have not taken the course, there is a simple explanation in this course, so please study on your own based on it.
Office hours and How to contact professors for questions
  • Mon 12:30-12:50
Regionally-oriented
Non-regionally-oriented course
Development of social and professional independence
  • Course that cultivates an ability for utilizing knowledge
  • Course that cultivates a basic problem-solving skills
Active-learning course
More than one class is interactive
Course by professor with work experience
Work experience Work experience and relevance to the course content if applicable
Applicable Development of resource management systems for reliable architecture.
Education related SDGs:the Sustainable Development Goals
  • 4.QUALITY EDUCATION
  • 9.INDUSTRY, INNOVATION AND INFRASTRUCTURE
  • 12.RESPONSIBLE CONSUMPTION & PRODUCTION
Last modified : Fri Jun 28 14:17:01 JST 2024