情報工学科 3年生対象 専門科目 システムプログラミング 第1回 イントロダクション 担当:青木義満 [email protected] 3年生の心構え • 自分の進路について考え,悩み,決断する重 要な1年 • 大学院進学 or 就職? • 自分の専門分野を決める(→研究室選択) 単位の足りない人 → 卒論着手条件を満たすよう,単位を取り切る! 単位の心配の無い人 → 専門科目を学びつつ,自分の興味のある専門分野 (職種)について積極的に調べる 「就職」を知る,「研究」を知る • 就職 – 後期,秋くらいから,就職課主催の説明会などが例年企画 – 芝浦OBの会社説明 – 就職課担当者,学科就職担当への相談 • 研究 – 後期から,「卒研プレゼミナール」で研究室を体験 – 12月頃,研究室配属決定 – 事前に興味のある研究室へは訪ねてみるのも手 特に大学院進学希望者は3年間を決める重要な選択 OSとは? • コンピュータのハードウェアを直接操作し、人 間にとって使い易い形にして提供するととも に、ハードウェア資源を効率的に利用出来る ようにするプログラム体系 概要はOS1で学習済み 講義の前提 • OS1の講義内容の基本的な部分を理解して いること • C言語によるプログラミングに慣れていること • 関連科目 – OS1,プログラミング入門1,2, データ構造とアルゴリズム1,2+基礎情報演習 本講義の概要 • OS1で学んだOSの基本知識をベース • OSのカーネルプログラムの一部の深い理解 やOSの原理などを体験的に学習 • Linux・Unixシステムを対象にした,シェル・C 言語を用いたシステムプログラミング Windows OS OSがカプセル化,ブラックボックス Unix・Linux Open Source,自由度高い ※情報工学科卒でUnix・Linuxに触れたことがないというのは・・・ 本講義の目的・学習目標 • OSの提供するシステムコール群を有効に用 いるシステムプログラミング を通して・・・ ・プログラミングの幅(自由度)を広げることができる ・よりOSに近いレベルのプログラム開発を通して OSの機能に対する理解度を深めることができる OS1: 講義を通してOSの基本原理・機能を学習 本講義: 講義+PC実習を通して知識+技能を修得 授業の進め方 • 講義とPC実習形式 – 6階PC実習室1 • 演習課題を適宜 評価方法 • 授業内の演習課題(20%) • 期末試験(80%) 特別な理由が無い限り,追試などは行わない 参考書 1.Linuxプログラミング(例題で学ぶUnixプログラミン グ環境の全て),Neil Matthew & Richard Stones 著,ソフトバンク出版,¥4410(税込) 2.C言語によるUNIXシステムプログラミング入門,河 野清尊 著,オーム社 ¥2940(税込) 授業計画 • • • • • • • • UNIX・LINUX概要 UNIX・LINUXコマンド シェルプログラミング システムプログラミング ファイル操作 データ管理 プロセスとシグナル プロセス間通信とパイプ 期末テスト ソフトウェア Unix-OSの構造 ユーザ層 ユーティリティ層 システム層 カーネル層 ハードウェア システムコール システム層以上のソフトと カーネル層との情報伝達手段 カーネル層:OSの核をなす部分, システム資源(メモリ,入出力,ファイル,プロセス)の管理 システム層:プロセス,ディレクトリ,コマンド,ファイル ユーティリティ層:ソフトウェア開発用コマンド,エディター他 ユーザ層:アプリケーションプログラム,シェルスクリプト シェルとシステムコール • シェル – ユーザーとUNIXシステムの間のインタフェースとして機 能するプログラム – コマンド入力 → OSに実行させる (カーネルで行われる処理の細かな部分をユーザーから 隠す役割) • システムコール – システム層以上のソフトウェアがカーネル層の機能を呼 び出す時 – カーネルが管理しているシステムの資源をアクセスする 時に利用 シェルとは? • ユーザーとUNIXシステムの間のインタフェー スとして機能するプログラム • カーネルで行われる処理の細かな部分を ユーザーから隠す役割 csh その他の プログラム カーネル bash X Window 表2.1 プログラミング言語としてのシェル • シェルプログラム作成の2つの方法 – コマンドを入力してシェルによって対話的に実行 – コマンドをファイルに保存し,プログラムとして呼び出す • 対話的プログラムの例 – grep –l POSIX * | more – POSIXというパターンに一致する内容を持つファイルの 名前を出力 – いつもコマンドを打つのは面倒 – コマンドを保存したファイルを作成し,必要に応じて実行 • “シェルスクリプト“ シェルプログラミングの利点 • 豊富なUNIXコマンド群を有効活用 • 例えば…. – ディレクトリ内にある画像ファイル全てに対して, プログラムによりある処理を施したい • ディレクトリ内にある画像ファイルのみを抽出,繰り返 し演算 – 複数あるデータベースファイルから,ある特定の 文字列を含むファイルのみを抽出してプログラム により処理したい • 文字列検索による該当ファイル抽出,繰り返し演算 – 複数のプログラムを組み合わせてバッチ処理し たい <システムコールの機能> • • • • • • ファイル,デバイスとの入出力,制御 ファイルの属性,状態の獲得,変更 プロセスの生成と消滅 プロセス間通信,同期 プロセスへの割込み(シグナル) メモリの状態の獲得と変更 システムコールの例 User program Data File 直接アクセス ・・・・・・・・・・・ ・・・・・・・・・・・ C言語ライブラリ関数 ・・・・・・・・・・・ fscanf() ・・・・・・・・・・・ ・・・・・・・・・・・ ユーザ空間 ・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・ システムコール read (カーネル層 プログラム) カーネル空間 <何ができる?> プログラミングの応用範囲の拡大 • Unixの豊富なコマンド群をプログラムから利用 • Input/Outputを直接操作 • プロセスの発生,並列動作,プログラムから別プロ グラムを起動等 • プロセス間でデータの受け渡しが可能 • シグナルによる割り込み処理 – ユーザインタフェースからの入力 – ハードウェア,ソフトウェアエラー – 他のプロセスからの信号 OSの一部の機能に触れる→OSの動作を知る 科目履修について • 3年の専門選択科目 • 内容に興味のある人,向上心がある人向け – そうでない人は無理して取らないで
© Copyright 2024 ExpyDoc