Informatics 1

A tantárgy neve magyarul / Name of the subject in Hungarian: Informatika 1

Last updated: 2016. szeptember 29.

Tantárgy lejárati dátuma: 2017. augusztus 31.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Course ID Semester Assessment Credit Tantárgyfélév
VIIIAB04 4 4/1/0/f 5  
3. Course coordinator and department Dr. Pilászy György,
Web page of the course
4. Instructors György Rácz
5. Required knowledge
6. Pre-requisites
(TargyEredmeny("BMEVIIIAA02" , "jegy" , _ ) >= 2 VAGY
TargyEredmeny("BMEVIIIA106" , "jegy" , _ ) >= 2 VAGY
TargyEredmeny("BMEVIIIA108" , "jegy" , _ ) >= 2 )
ÉS NEM ( TárgyEredmény( "BMEVIIIA202" , "jegy" , _ ) >= 2
TárgyEredmény("BMEVIIIA202", "FELVETEL", AktualisFelev()) > 0
TárgyEredmény( "BMEVIIIAB08" , "jegy" , _ ) >= 2
TárgyEredmény("BMEVIIIAB08", "FELVETEL", AktualisFelev()) > 0)

ÉS Training.Code=("5N-A7H")

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

7. Objectives, learning outcomes and obtained knowledge

The objective is to provide the students with comprehensive knowledge related to the architecture and functioning principles of computers and their operating systems.

The knowledge acquired in the framework of the subject allows students to understand the documentation and the functioning of computers and operating systems. They will be also able to carry out installation, configuration and maintenance tasks of such systems.

8. Synopsis

Computer Architectures:

Introduction, overview:

Typical functional units and block-diagram of computers. The von Neumann principle. Modularity and multiprocessing. Typical properties of CPUs, the hardware-software interface: instruction set, registers, flags, memory map, memory access, interrupt system, I/O system. Features supporting the use of high level languages.

Increasing performance of computers:

Increasing instruction execution throughput, concurrent execution inside processors. The pipe-line principle, instruction dependencies, coprocessors. Effect of the number and complexity of instructions on the performance. CISC vs. RISC processors.


Hierarchical memory organization. Improving memory access speed. Cache organization, mapping policies. Memory interleave technique, burst transmission. Increasing the addressable memory size, virtual memory management.

Support for multiprogramming operating systems:

Memory organization, protection features and their implementation. Privilege levels, privileged instructions, system calls, task switching, context switch. Atomic operations.

I/O handling:

Polling vs. interrupt driven IO, DMA, dedicated I/O processors. Standardization of I/O peripherals. Magnetic disc drives: storage principle, encoding, track, sector, softsector organization. Other typical peripherals.

Multiprocessor systems:

Loosely or tightly coupled systems, physical or logical levels of coupling. Typical implementation of interprocessor communications.

Bus systems:

Bus hierarchy levels: device, part, card level busses. Typical bus connected modules and their functions. Addressing modes, logical and geographical addressing, address domains. Bus timing, synchronous, asynchronous, semi synchronous, interlocked, non interlocked, partly interlocked systems. Bus controllers, control policies on multi-master buses. Static or dynamic bus allocation. Bus allocation and deallocation (arbitration) policies. Centralized and decentralized arbitration. Wireless bus interconnects. Important standards.

Operating Systems:

Historical overview:

General features, interfaces. Typical services, hardware requirements, system calls, system software and device drivers. Event driven programming, virtual machine concept, client-server, cloud based architectures. Safety functions, protection features.


Program execution as a process. Execution more programs concurrently on the same processor. The concept of threads and resources. Coupling between processes: competition or cooperation. Basic cases of process cooperation: common memory or message passing.

Common memory based cooperation:

The need for synchronization. Basic cases of synchronization: mutual exclusion, precedence, coincidence. Software implementations. Hardware support with atomic operations. The semaphore. Solving synchronization problems with semaphores. Implementation of a semaphore in a multiprogramming environment.

Cooperation trough message passing:

Communication subsystems. Terminology. Synchronous or asynchronous communication, the condition of semantic consistency. Effect of message buffering.

Deadlock situations:

The definition and necessary conditions of a deadlock. Modeling resource allocation in multiprogrammed systems, the resource allocation graph. Deadlocks and resource starvation. Deadlock avoidance, detection an handling strategies.

Multiprogrammed operating systems:

Basic concepts of multiprogramming, new tasks of the OS. Queuing and state model of tasks. Schedulers. Task contexts, the data structures required to implement multiprogramming.

CPU scheduling:

CPU as a special kind of resource. FCFS, SJF, priority based, non preemptive and preemptive time slot based scheduling algorithms. Multilevel scheduling queues. Assessment of different schedulers.

Memory management:

Address calculation. Relocatability and problems with reentrant (recursive) code sections. Linking and loading of programs. Object modules, libraries, static, dynamic linking, relocation. Load time or runtime dynamic linking. Problems with memory allocation.

Virtual memory management:

Concept of page based virtual memory, the cooperation of hardware-software. Page faults, effective access time. The concept of thrashing. Page fault handling algorithms. Working set, the concept of dynamic local memory management based on the page fault rate.

Disc management and file systems:

Tasks of the disc management layer. Improving effectiveness of disc operations. Files and directories as data structures. File models, allocation methods, administration of free space on a disc. Protection mechanisms against data corruption and unauthorized access. Opening and closing files. I/O subsystem, connection of devices, the levels of interfaces. The role of device drivers. Device independent interfaces. Character and block based devices.

Modern embedded operating systems:

The effect of low resources on the performance of an OS.

9. Method of instruction

Four hours of lecture weekly, two hours of classroom practice every other week.

10. Assessment

There are three midterm tests during the semester, with 20 points each. The midterm mark is calculated accordingly:

                0-23 points : 1
                24-32 points: 2
                33-41 points: 3
                42-50 points: 4
                51-60 points: 5


There is no exam.

11. Recaps

Only one of the midterm tests can be retaken in one occasion.

12. Consultations

by appointment

13. References, textbooks and resources

Michael J. Flynn - Wayne Luk: Computer System Design (Wiley, ISBN 978-0-470-64336-5)

Van de Goor,A.J.: Computer architecture and design. Addison-Wesley Publishing Company, 1989.

Wilkinson, B.: Computer architecture, design and performance. Prentice Hall, 1991.

Abraham Silberschatz, Peter B. Galvin, Greg Gagne: Operating system concepts, 8th edition, Wiley, 2008

14. Required learning hours and assignment
Contact hours70
Preparation for contact hours28
Preparation for the midterm48
Homework assignments0
Home readings4
Preparation for the exam0
Total workload150
15. Syllabus prepared by

Dr. György Pilászy

György Rácz