|
BIL7150 | Advanced System Programming | 3+0+0 | ECTS:7.5 | Year / Semester | Spring Semester | Level of Course | Third Cycle | Status | Elective | Department | DEPARTMENT of COMPUTER ENGINEERING | Prerequisites and co-requisites | None | Mode of Delivery | Face to face | Contact Hours | 14 weeks - 3 hours of lectures per week | Lecturer | -- | Co-Lecturer | None | Language of instruction | Turkish | Professional practise ( internship ) | None | | The aim of the course: | The course aims to describe the programming interface to the Unix system, the system call interface and many of the functions provided in the standard C library, through coverage of files, processes, semaphores, tracing, signals, POSIX threads and client-server communication. |
Programme Outcomes | CTPO | TOA | Upon successful completion of the course, the students will be able to : | | | PO - 1 : | manage file subsystem through system calls. | 3,5,10 | 1,3 | PO - 2 : | manage process subsystem through system calls. | 3,5,10 | 1,3 | PO - 3 : | redirect I/O from any of the standard streams to a file. | 3,5,10 | 1,3 | PO - 4 : | write programs that executes other programs. | 3,5,10 | 1,3 | PO - 5 : | make processes communicate in Unix systems. | 3,5,10 | 1,3 | PO - 6 : | create and handle signals in programs. | 3,5 | 1,3 | PO - 7 : | do system programming at system-call level. | 3,10 | 1,3 | CTPO : Contribution to programme outcomes, TOA :Type of assessment (1: written exam, 2: Oral exam, 3: Homework assignment, 4: Laboratory exercise/exam, 5: Seminar / presentation, 6: Term paper), PO : Learning Outcome | |
Unix systems: History, standards, kernel, system calls. File subsystem management: File and directory structures, disk special files, permissions, file and directory accesses, I/O redirections. Process subsystem management: Process model, process environments, process creation and termination, process control, process times. Interprocess communication: Buffering, process synchronization and communication concepts, pipes, named pipes, semaphores, message queues, shared memory. Process monitoring: Tracing mechanisms, ptrace system call, /proc file system, process halting and restarting, system resource control. Signals: Signal concepts, software interrupts, signal catching and handling, signal blocking, signal system calls. Terminal I/O: Getting and setting terminal attributes, canonical and noncanonical modes, nonblocking I/O, raw terminal I/O, pseudo terminals. Threads: Thread concepts, thread environment, thread invocation and synchronization. Socket programming: Sockets, TCP/IP architecture, client/server programming. |
|
Course Syllabus | Week | Subject | Related Notes / Files | Week 1 | Unix Systems | | Week 2 | System Interfaces: Libraries and System Calls | | Week 3 | File Subsystem Management - I | | Week 4 | File Subsystem Management -II | | Week 5 | Process Subsystem Management - I | | Week 6 | Process Subsystem Management - II | | Week 7 | Interprocess Communication | | Week 8 | File Systems: fdfs and /proc | | Week 9 | Mid-term exam | | Week 10 | Process Monitoring Mechanisms | | Week 11 | Signals | | Week 12 | Terminal I/O | | Week 13 | Threads | | Week 14 | Socket Programming | | Week 15 | A Client-Server Application | | Week 16 | End-of-term exam | | |
1 | Stevens, W.R., Raqo, S.A. 2005; Advanced Programming in the UNIX Environment, 2nd ed., Addison Wesley, 960 p. | | 2 | Robbins, K.A., Robbins, S. 2003; UNIX Systems Programming: Communication, Concurrency and Threads, Prentice Hall, 912 p. | | |
1 | Bach, M.J. 1986; The Design Of The Unix Operating System, Prentice Hall, 486 p. | | |
Method of Assessment | Type of assessment | Week No | Date | Duration (hours) | Weight (%) | Mid-term exam | 8 | 11/04/2013 | 2 | 30 | Homework/Assignment/Term-paper | 14 | 24/05/2013 | 0,5 | 20 | End-of-term exam | 16 | 30/05/2013 | 2 | 50 | |
Student Work Load and its Distribution | Type of work | Duration (hours pw) | No of weeks / Number of activity | Hours in total per term | Yüz yüze eğitim | 3 | 14 | 42 | Sınıf dışı çalışma | 5 | 14 | 70 | Arasınav için hazırlık | 15 | 1 | 15 | Arasınav | 2 | 1 | 2 | Ödev | 30 | 1 | 30 | Dönem sonu sınavı için hazırlık | 20 | 1 | 20 | Dönem sonu sınavı | 2 | 1 | 2 | Total work load | | | 181 |
|