Systemnahe Programmierung (Systems Programming)

HOME     


Semester:   WS 2009/10
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: 7.10.2009
(Weekly on Wed 08:30 - 10:00, Start: 7.10.2009)
T 041

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

Klausur für alle Gruppen gemeinsam  (Exam for all groups):
3.2.2010, 8:30 - 10:00, HS 1
 

Ort:    Gruppe 1 (Group 1): T 041
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
       
  • 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:  2009-10-12