Course title
L09329003
System Programming

sugaya midori Click to show questionnaire result at 2018
Course description
オペレーティングシステム(以下ではOSと略記)の講義で学習した内容について、LinuxというOSを例として体験的に学習することを目的とする.

プロセス、ネットワークソケットプログラミング等の具体的なプログラムをC言語を用いて作成することにより学習する.また,近年ではIoT などでも利用されているネットワークプログラミングを応用したアプリケーションをグループワークにて開発する.

まずは,開発環境を Linux 上に整え,その後,Linuxのシステムコールを用いたプログラミングを行う.Linux等のUnix系OSにおいてはハードウェアはすべてカーネルが管理しており、ユーザプログラムは、OSが提供するシステムコールという関数を通してカーネル内のコードを呼び出すことによってハードウェアとのやり取りを行う.実際のプログラム開発を通して,システムの理解を深める.本理解は,IoT(Internet of Things), クラウドシステムなどの理解の基礎となる.
Purpose of class
実践的なシステムコールプログラミングを通じてOS とUNIX によるプラットフォーム,ミドルウエア開発への理解を深める
Goals and objectives
  1. システムコールの概念を理解し、それを用いたプログラムが書けるようになる。
  2. プロセス生成やプロセス間通信などを行うプログラムを書けるようになる。
  3. ソケット通信を用いたネットワークプログラムを書けるようになる。
  4. システムプログラミングの知識を応用して,サーバクライアントプログラムとアプリケーションを作成できるようになる.
Language
Japanese(English accepted)
Class schedule

Class schedule HW assignments (Including preparation and review of the class.) Amount of Time Required
1. イントロダクション 歴史などの概観 30minutes
2. セットアップ Ubuntu のセットアップ、ターミナルソフトの起動、ssh, scp の利用 60minutes
30minutes
3. シェルプログラミング 配布したPDFを用いた実習,プログラミング作成 30minutes
課題 60minutes
4. 標準Cライブラリ、開発環境 配布したPDFを用いた実習,プログラミング作成 30minutes
課題 60minutes
5. 文字列操作、ファイル入出力 配布したPDFを用いた実習,プログラミング作成 30minutes
課題 60minutes
6. ファイル(高水準ファイル)
性能評価(分析ソフトの開発)
配布したPDFを用いた実習,プログラミング作成 630minutes
課題 60minutes
7. プロセス (1)
- マルチタスクとは何か
- プロセス制御
配布したPDFを用いた実習,プログラミング作成 30minutes
課題 60minutes
8. プロセス (2)
- 複数プロセスの制御、発展課題
配布したPDFを用いた実習,プログラミング作成 30minutes
課題
9. スレッドプログラミング(1)
・マルチスレッドとは何か
・マルチスレッドプログラミング
配布したPDFを用いた実習,プログラミング作成 30minutes
課題 60minutes
10. スレッドプログラミング(2)
・ロック,排他処理によるデッドロックの回避
配布したPDFを用いた実習,プログラミング作成 30minutes
課題 60minutes
11. ソケットプログラミング(1)
・クライアントサーバ型通信
・クライアントプログラムの開発
配布したPDFを用いた実習,プログラミング作成 30minutes
課題 30minutes
12. ソケットプログラミング(2)
・サーバプログラムの開発
・クライアントサーバプログラムの発展
サーバプログラムの開発演習
複数プロセスの生成など
30minutes
課題 60minutes
13. ネットワークプログラミング(マルチタスクサーバ) テーマを決めて開発 30minutes
課題 60minutes
14. ネットワークプログラミング、発表 製作したプログラムの発表 30minutes
課題 60minutes
Total. - - 1710minutes
Relationship between 'Goals and Objectives' and 'Course Outcomes'

演習/レポート 開発 Total.
1. 70% 30% 100%
2. 0%
Total. 70% 30% -
Evaluation method and criteria
レポート、プログラミング課題(70%)
サーバクライアントアプリケーション開発(30%)
Textbooks and reference materials
1. C言語によるUNIXシステムプログラミング入門,河野清尊 著, オーム社, 2003
2. Unix/Linux プログラミング 理論と実践, Bruce Molay 長尾高弘訳,ASCII, 2008
参考書:「魔法のCプログラミング演習書」倉光君朗 コロナ書店
Prerequisites
プログラミング入門1および2、オペレーティングシステム
Office hours and How to contact professors for questions
  • 講義前後、あるいは電子メールで随時
Relation to the environment
Non-environment-related course
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 interpersonal skills
  • 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 applicatable
Applicatable OS の資源管理システム(OSS) ,Linux 階層型スケジューラの開発等
Last modified : Fri Sep 27 04:03:34 JST 2019