Course title
L09329003
Information System and System Programming

SUGAYA Midori Click to show questionnaire result at 2018
Course description
現在の情報技術を支える,ITシステムは.高度なコンピュータシステムにより支えられている.
このコンピュータシステムは,複数のCPUだけではなく,GPGPUや,FPGAなど様々なアクセラレーターにより構成されており,かつ,並列・分散という形で高度化・複雑化している.
こうしたコンピュータシステムを支える,ソフトウエアの基盤システムには,通信ミドルウエアやオペレーティングシステムがある.本授業は,ソフトウエアの最下層のオペレーティングシステム(以下ではOSと略記)やミドルウエアについて、OS の機能を呼び出すAPIであるライブラリや,システムコールなどを使ったプログラミングを行い,記述による性能への影響などを実践的に学びます.

講義は全て演習を含むものとし,可変長データを扱うファイル,マルチタスク,シグナル,マルチスレッドの開発,また,これらを応用したネットワークソケットプログラミングでは,これらの統合技術としてマルチタスクサーバを開発します.本演習等を通じて,メモリやCPUの高度な共有や,高性能サーバ,クラウドシステムなどを実現するソフトウエア開発を理解することができます.計算機の資源を効率的に利用するということを理解します.
Purpose of class
OSのAPIであるシステムコールの概念や,実践的な利用方法を理解し,これを使いこなす技術力を身につけることを目的とします.
高度なシステムを構成する技術を学ぶためには,基礎的なソフトウエアの技術であるファイル,マルチタスク,シグナル,マルチスレッドなど,OSのCPUとメモリを抽象化したプログラミングを理解する必要があります.本授業では,こうした理解に基づき,性能を評価したり,これを向上するための技術の実装に取り組みます.さらに,仮想ネットワークを実現するソケットプログラミング,これらを統合したマルチタスクサーバの開発を行います.本演習等を通じて,計算機資源であるメモリやCPUの高度な共有など,計算機資源を効率的に利用する方法を理解し,高性能サーバ,クラウド,ミドルウエアを実現するソフトウエア開発のより深い理解をめざします.
Goals and objectives
  1. UNIXの基礎,ライブラリ,OSのAPIであるシステムコールの概念を理解し,実装できる.
  2. 高度な情報処理に必須となるストリーム処理,ファイル,マルチタスク,シグナル,マルチスレッドなど,OSのCPUとメモリを抽象化したプログラミングを理解し,性能評価,向上ができる.
  3. ソケット通信を用いたネットワークプログラミングを理解し,マルチタスクサーバ,クライアントを設計できる.
  4. ソケット通信においてマルチタスクサーバにおけるクライアント間の可変長のデータを共有するマルチタスクサーバを設計・実装できる.
Language
Japanese(English accepted)
Class schedule

Class schedule HW assignments (Including preparation and review of the class.) Amount of Time Required
1. イントロダクション 歴史などの概観, セットアップ(Ubuntu のセットアップ、ターミナルソフトの起動、ssh, scp の利用) 100minutes
2. 高度なプログラミングの基礎となる標準Cライブラリ、開発環境の理解 配布したPDFを用いた実習,プログラミング作成 150minutes
演習課題
3. ストリーム処理とは何か?
可変調のデータを扱うための基礎的なプログラミングの理解,文字列操作、ファイル入出力
ファイル(高水準ファイル)
性能評価(分析ソフトの開発)
配布したPDFを用いた実習,プログラミング作成 100minutes
演習課題 100minutes
4. マルチタスクの基礎となるプロセス制御
プロセス
- マルチタスクとは何か
- プロセス制御
配布したPDFを用いた実習,プログラミング作成 100minutes
演習課題 100minutes
5. マルチスレッドの基礎となるスレッド制御
スレッドプログラミング(1)
・マルチスレッドとは何か
・マルチスレッドプログラミング
配布したPDFを用いた実習,プログラミング作成 100minutes
演習課題 100minutes
6. マルチスレッドの基礎となるスレッド制御
スレッドプログラミング(2)
・ロック,排他処理によるデッドロックの回避
配布したPDFを用いた実習,プログラミング作成 100minutes
演習課題 100minutes
7. 非同期分散プログラミングを実現する技術
時刻,割り込み,シグナル
配布したPDFを用いた実習,プログラミング作成 100minutes
演習課題 100minutes
8. ネットワーク実装技術の基礎理解
ソケットプログラミング(1)
・クライアントサーバ型通信
・クライアントプログラムの開発
配布したPDFを用いた実習,プログラミング作成 100minutes
演習課題 100minutes
9. ネットワーク実装技術の基礎理解
ソケットプログラミング(2)
・サーバプログラムの開発
・クライアントサーバプログラムの発展
配布したPDFを用いた実習,プログラミング作成 100minutes
課題演習 100minutes
10. ネットワーク実装技術の応用理解
ソケットプログラミング(3)
・高度なソケットプログラミング
・ネットワークプログラミング(マルチタスクサーバ)
配布したPDFを用いた実習,プログラミング作成 100minutes
演習課題 100minutes
11. ネットワーク実装技術の応用理解
ソケットを用いたマルチタスクサーバ・サービス,アイデアの議論
テーマを決めて設計 200minutes
12. 実践的開発
ソケットを用いたマルチタスクサーバ・サービス,設計・実装
発表・開発 200minutes
13. 実践的開発
ソケットを用いたマルチタスクサーバ・サービス,設計・実装
開発 200minutes
14. 実践的開発
ソケットを用いたマルチタスクサーバ・サービス,発表
製作したプログラムの発表,レポート提出 200minutes
Total. - - 2650minutes
Relationship between 'Goals and Objectives' and 'Course Outcomes'

演習レポート 最終開発課題 Total.
1. 30% 0% 30%
2. 30% 0% 30%
3. 10% 15% 25%
4. 0% 15% 15%
Total. 70% 30% -
Evaluation method and criteria
評価方法:演習課題とレポート課題を100点とし、総合得点60点以上を合格とする。
評価基準:演習課題やレポート課題を適切に行うことを60点の基準とする。
Feedback on exams, assignments, etc.
ways of feedback specific contents about "Other"
授業内と授業外でフィードバックを行います。 課題やレポートで提出した内容について,基本的には授業中,もしくは次の授業などで解説を行います.授業以外で不明なことは Slack などで対応します
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
  • 講義前後、あるいは電子メールで随時
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 self-management 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 applicable
Applicable OS の資源管理システム(OSS) ,Linux 階層型スケジューラの開発等
Education related SDGs:the Sustainable Development Goals
  • 9.INDUSTRY, INNOVATION AND INFRASTRUCTURE
  • 17.PARTNERSHIPS FOR THE GOALS
Last modified : Tue Oct 31 04:06:46 JST 2023