General Data

Type of credits: ECTS
Number of credits: 6.00
Status: Mandatory
Type: Course
Academic Year:
Term:
Languages: Portuguese
Available for Mobility Students: No
Restricted to alliance: No
Code: Sin codigo

Coordination

Description

Theory
2

Laboratory
2

Instructors

Jorge Estrela da Silva


 

Contents

1 - UNIX like operating systems (CP1)
1.1 Processes. Process management in the shell
1.2 Scheduling.
1.3 Memory management. Virtual memory.

2 - POSIX programming (CP2)
2.1 Processes and threads.
2.2 Signals.
2.3 Classic inter-task communication and synchronization mechanisms.

3 - Distributed systems development (CP3)
3.1 Sockets.
3.2 Remote Procedure calls.
3.3 Web Services.

4 - Computer systems organization (CP4)
4.1 Definitions and examples.
4.2 Storage devices.
4.3 Communication devices.
4.4 Interface devices. Addressing, IRQs, DMA, Bus mastering.
4.5 Expansion Buses/ports.
4.6 Motherboard.

Learning Outcomes

This course seeks to provide the student with introductory knowledge for the design, implementation and analysis of multi-tasking and distributed systems. At the end of the course, the student should have basic knowledge regarding computer organization and should understand the role of the operating system. Special emphasis is put in the development of multi-tasking and distributed applications for Unix-like platforms using the C programming language.

At the end of the course, students should be able to:
O1) Understand the role of the operating system and its major components.
O2) Analyze and develop applications involving the following mechanisms: multi-process, multi-thread, signals, shared memory, pipes, message queues, semaphores and mutexes, under the POSIX standard, using the C programming language
O3) Know the main options of using the sockets interface and their relations with IP, TCP and UDP protocols.
O4) Know the main problems and approaches in the development of distributed applications.
O5) Understand the operation of SOAP and REST type web services
O6) Create elementary REST type web services, using PHP, and their clients (planning and design).
O7) Design software for applications involving multi-task and communications using the sockets interface.
O8) Be familiar with the nomenclature associated with computer organization.
O9) Know the main flows of data and control between the components of a computer.
O10) Understand the main forms of interaction between hardware and software.