Systemnahe Programmierung
 (Systems Programming)


Semester: WS 2008/09
LVA-Name:  Systemnahe Programmierung
(Systems Programming)


Die Lehrveranstaltung wird in englischer Sprache abgehalten.
(The lecture will be held in English)

LVA-Nummer:  353.005  Gruppe 1 (Group 1)
353.007  Gruppe 3 (Group 3)
LVA-Typ:  PR
Wochenstd. pro Sem.:  2
Vortragende(r):  Alexandros Paramythis
Max. Teilnehmerzahl:  Max. 35
Anmeldemodus:  Online
 
Termine: 

Gruppe 1 (Group 1):
Wöchentlich am Mi 8:30 - 10:00 Uhr, Beginn: 15.10.2008
(Weekly on Wed 08:30 - 10:00, Start: 15.10.2008)
HS 14

Gruppe 3 (Group 3):
Wöchentlich am Mi 12:00 - 13:30 Uhr, Beginn: 15.10.2008
(Weekly on Wed 12:00 - 13:30, Start: 15.10.2008)
T 041

Klausur für beide Gruppen gemeinsam (Exam for both groups):
voraussichtlich am 4.2.2009, 10:15 - 11:45, HS 1
 

Ort:  Gruppe 1 (Group 1): HS 14
Gruppe 3 (Group 3): T 041
 
Inhalt der LVA: 

The course will comprise three parts, taught in conjunction with two different programming languages. Specifically the course's three parts will be on assembly, C and operating system-level programming. The contents of the course will be as follows:

Assembly Part C Part System Part
  • Computer Architecture
    • Von Neumann architecture
    • CPU
    • Registers
    • History of Intel processors
    • Data accessing methods
    • Instruction set architecture
    • IA-32
       
  • Introduction to Assembly
    • Programming environment
    • Compiling, linking and running programs
    • Object code
    • Examples
       
  • All About Functions
    • Aspects of functions
    • Calling a function
    • C calling convention
    • Managing registers for function calls
       
  • Dealing With Files
    • The file concept of UNIX
    • Dealing with files
    • Buffers
    • Redirecting input/output
    • Pipes
       
  • Dynamic libraries
    • Why dynamic libraries?
    • Dynamic linking
    • Library dependencies
    • Building and using a dynamic library
       
  • Intermediate Memory Topics
    • Memory hierarchy
    • Virtual and physical memory
    • Memory layout of Linux programs
    • Dynamic memory allocation
  • High-Level Languages
     

  • Introduction to C
    • History of the C language
    • Main similarities and differences from Java
    • Quick overview of the most important features of the language
       
  • Pointers, arrays and strings - 1st Part
    • Variables and pointer variables
    • Pointer types, operators
    • Similarities and differences between pointers and arrays
    • Strings in C
    • Array indexing and pointer arithmetic
    • Pointers to structures
       
  • Pointers, arrays and strings - 2nd Part
    • Multi-dimensional arrays
    • Pointers to arrays
    • Dynamic allocation of memory
    • Dynamic allocation of multi-dimensional arrays
    • Pointers to functions
       
  • User-defined types
    • Structures
    • Unions
    • Enumerations
       
  • Basic I/O in C
    • Streams
    • Character- / line- oriented input & output
    • Block I/O
    • File positioning
    • Formatted input & output
       
  • The standard C library
    • ANSI libraries and header files
    • Character class tests
    • Error checking and reporting
    • String functions
    • Time and date functions
    • Standard utility functions
       
  • Signal handling
    • Signal handling basics
    • Waiting for signals
    • Signal system calls
    • Clocks and timers
       
  • Interprocess communication
    • Pipes and named pipes
    • Message queues
    • Semaphores
    • Shared memory
LVA-Modus:  Die Lehrveranstaltung wird in englischer Sprache abgehalten.
(The lecture will be held in English)

 
Prüfung:  Schriftlich am Ende des Semesters
(Written exam at the end of the semester)
Literatur: 
Sprechstunden Mi, 10:30 - 12:00
(Wed, 10:30 - 12:00)
 
Sonstige Informationen:   
Weitere Auskünfte:  Alexandros Paramythis (email: paramythis@fim.uni-linz.ac.at)
 
Links zu anderen Sem.:   

Letzte Änderung:  2008-10-07