オペレーティングシステム

科目基礎情報

学校 函館工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 オペレーティングシステム
科目番号 0327 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 生産システム工学科 対象学年 5
開設期 後期 週時間数 2
教科書/教材 オペレーティングシステム(野口健一郎 オーム社)
担当教員 佐藤 恵一

到達目標

1. システムコール、カーネル、ファイルシステム、ドライバなどの各ツールの機能を理解し、ユーザが作成したアプリケーションの命令語がこれらを通じて実行を行う手順を理解する。
2. プロセスの状態遷移と割り込み、競合状態を回避するセマフォなどの技術、記憶階層や再配置のメモリ管理技術、このようなOSが効率よくリソースを割り当て、マルチプログラミングを実現するための基盤技術を理解する。
3. プロセスの競合状態、リエントラント性などOSの技術を理解してプログラム作成することができる。
4.企業の開発現場の技術を理解することができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1カーネルの機能を理解し、アプリケーション開発に応用できる。カーネルの機能を理解できる。カーネルの機能を理解できない。
評価項目2マルチプログラミング、プロセスの競合状態、リエントラント性などOSの技術を理解してプログラム作成することができる。マルチプログラミング、プロセスの競合状態、リエントラント性などOSの技術を理解できる。マルチプログラミング、プロセスの競合状態、リエントラント性などOSの技術を理解できない。
評価項目3副業先生による授業:クラウドサービスなど現在の企業現場の手法によりシステム設計・開発ができる。副業先生による授業:クラウドサービスなど現在の企業現場の手法によりシステム設計・開発を理解することができる。 副業先生による授業:クラウドサービスなど現在の企業現場の手法によりシステム設計・開発を理解することができない。

学科の到達目標項目との関係

函館高専教育目標 B 説明 閉じる

教育方法等

概要:
現在のOS(オペレーティングシステム)は、以前アプリケーションであったものがOSの標準機能となっており、アプリケーションとの境界を判断するのが困難な状況である。本授業では、OSの根本的な部分つまり「狭義のOS」に注目する。「狭義のOS」は、どのようなコンポーネントから構成され、それぞれどのような機能、技術があるのかを理解する。カーネルがどのようにして効率よくリソースを割り当て、マルチプログラミングを実現しているのかを理解する。授業内容は公知の情報のみに限定している。
本授業では、上記内容の本校教員の授業に加えて、企業の現場で活躍している技術者(副業先生と呼んでいる)を招き、授業を行う。企業の開発現場の技術を修得する。
授業の進め方・方法:
本校教員のOSの授業および企業の現場の技術者(副業先生)による現場の技術によるシステム開発の講義と分けて実施する。
本演習科目は学修単位(2単位)の授業であるため、履修時間は授業時間60時間と授業時間以外の学修(予習・復習、課題・テスト等のための学修)を併せて90時間である。
自学自習の成果は 定期試験によって評価する。
注意点:
副業先生2名による評価40%、本校教員による評価60%。副業先生は課題により評価、本校教員は定期試験(筆記)で評価する予定。
授業内容により評価割合や評価方法を変更する場合がある。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 副業先生1による授業
▪️クラウド概要
・クラウドの市場とプレイヤー
・クラウド以前のITシステムの構成
・クラウドを利用したITシステムの構築
・クラウドとAIの親和性
・クラウドとAPIエコノミーの関係
クラウドの概要を説明できる。
2週 副業先生1による授業
クラウド機能実習
・コードによるシステム構築のデモ
・画像認識、文字解析、Chat-BotなどのAI機能のデモ
・Deep LearningなどのAIモデルのプログラムのデモ
・API経由によるサービスコールの仕組みのデモ
・クラウドによる顔認識、オブジェクト認識、人物比較機能のAPIコールによる動作確認の実習。

クラウド機能実習概要を説明できる。
3週 副業先生1による授業
クラウド開発PJ実習
・クラウド以前のITシステムの開発手法の説明
・クラウドを利用したITシステム開発手法の説明
・Agile/UX/Scrum開発における成果物の説明
・ユーザーのイメージ(ペルソナ)の作成 実習
・サービスの絵コンテ(ストーリーボード)の作成 実習
・スケジュール(スプリント計画)の作成 実習
クラウド開発PJ実習概要を説明できる。
4週 副業先生1による授業
クラウドWebサービス開発演習
・WebサービスにおけるAPIコールの概要説明
・Restful APIの説明
・クライアント側の実装テンプレート説明
・JavaScriptからのAPIコールの疎通確認を行う。

クラウドWebサービス開発演習ができる。
5週 副業先生2による授業
ハードウェア構成の変遷について
ハードウェア構成の変遷について説明できる。
6週 副業先生2による授業
各現場で使われている⾔語について
ハードウェアの開発フロー
ソフトウェアの開発フロー
ハードウェア、ソフトウェアの開発フローを説明できる。
7週 副業先生2による授業
グループワーク
‧バックログを上げる
発表
グループワーク後の業務について
グループワークについて説明できる。
8週 副業先生2による授業
特有の現場における開発
‧PSなどのゲーム機など⺠⽣系
‧⾞系
‧システム系
特有の現場における開発について説明できる
4thQ
9週 本校教員による授業
オペレーティングシステムとは、
狭義のOSの位置づけ、マイクロプログラミング(ファームウェア)
APIの実行概要
狭義のオペレーティングシステムの役割について説明できる。
10週 本校教員による授業
カーネルの構成とその動作
プロセス管理の概要
プロセスモデル、プロセス、軽量プロセス(スレッド)
カーネルの構成とその動作が説明できる。プロセス管理の概要を説明できる。
11週 本校教員による授業
プロセスの状態遷移
プロセススケジューリング
優先度順、ラウンドロビン、ダイナミックディスパッチング
プロセスの状態遷移を説明でき、各プロセススケジューリングを説明できる。
12週 本校教員による授業
クリティカルセクション
競合状態
排他制御、Lock/unlockを使う方法、セマフォを使う方法
デットロック
クリティカルセクションを説明でき、競合状態が発生してしまわない手法を説明できる。
13週 本校教員による授業
割込み処理
メモリ管理
 記憶階層、メインメモリへのプログラムの配置、論理アドレスと物理アドレスの変換方法(ベースアドレス方式、セグメント方式、ページング方式)
仮想記憶概要
記憶階層について説明できる。プロセスに割り当てられるメモリ領域の構成を説明できる
論理アドレスと物理アドレスについて説明できる。
14週 本校教員による授業
プログラム管理
 テキストエディタ、リンカ、ローダによるソースファイル、オブジェクトファイル、実行形式ファイルの作成
リエントラントなプログラム
ファイルシステム
 FATファイルシステム、iノードファイルシステム
ローダの機能を理解し、シンボル、ライブラリおよび各種プログラムの特徴を総合的に理解することができる。
FATファイルシステム、iノードファイルシステムを説明できる。
15週 学年末試験
16週 試験答案返却・解答解説 ・間違った問題の正答を求めることができる

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野計算機工学コンピュータを構成する基本的な要素の役割とこれらの間でのデータの流れを説明できる。5
コンピュータアーキテクチャにおけるトレードオフについて説明できる。3
コンピュータシステムネットワークコンピューティングや組込みシステムなど、実用に供せられているコンピュータシステムの利用形態について説明できる。4後9
デュアルシステムやマルチプロセッサシステムなど、コンピュータシステムの信頼性や機能を向上させるための代表的なシステム構成について説明できる。4後9
システムプログラムコンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。4
プロセス管理やスケジューリングなどCPUの仮想化について説明できる。4
排他制御の基本的な考え方について説明できる。4
記憶管理の基本的な考え方について説明できる。4後4

評価割合

試験発表相互評価態度ポートフォリオ課題合計
総合評価割合60000040100
基礎的能力3000002050
専門的能力3000002050
分野横断的能力0000000