Operating Systems II

Base Knowledge

C Programming

Topics on computer architecture

Topics on operating system

Teaching Methodologies

There are theoretical lectures are practical lectures.

Within the theoretical lectures, an expository methodology is used to present the theoretical foundations of the subject with applications examples.

Within the practical classes students apply the knowledge of theoretical lectures, developing applications, with the supervision of teachers.

Learning Results

1. Improve skills on operating systems.

2 Acquire skills in Windows operating system and platform.

3 Acquire skills in programming Win32 applications in C.

4. Evolve in the ability to organize, research, propose and plan solutions, work with autonomy, preparation of documentation.

Program

1. Theoretical component

  A. The Windows NT architecture. Micro-kernel architecture. NT Executive. Sub-systems. Win32 subsystem. Win32 applications and UAP platform.

  B. Win32 programming – Introduction

    i. Introduction to Unicode programming.

    ii. Types of Windows NT applications.

    iii. Registry

    iv. Creation and management of processes.

    v. Thread creation and management. Multi-threaded programming model. Application and advantages. Examples of parallel thread programming.

  C. Synchronization – Models and mechanisms

    i. Fundamental synchronization problems. Mutual exclusion. Competition and cooperation.

    ii. Review on Algorithmic and system solutions. Logical latches. Mutexes. Semaphores. Atomic operations. Test and Set operations. Example with producer/consumer

    iii. Win32 synchronization mechanisms. API. Mutexes, Critical Sections, Traffic lights. Timers. Waitable events. Asynchronous API.

    iv. Synchronization in multi-thread programming in Win32

    v. Deadlocks. Main concepts. Prevention and avoidance strategies. Banker’s algorithm.

  D. Communication models and mechanisms

    i. Named pipes. Client-server model with named pipes in Win32.

    ii. Memory mapped files.

  E. Security model and mechanisms. Concrete case of the Win32 platform API. Privileges, rights. DACL.

  F. Graphical interface and event programming

    i. Graphical Win32 application structure

    ii. Windows as a structuring element for applications. Callback functions. Events. Event-oriented programming.

    iii. Features in the Win32 computational model. Examples of icons, menus, dialog boxes and string tables.

  G. Dynamic link libraries – DLL. Creation. Principles of dynamic libraries and low-level operation. Explicit link and implicit link.

 

2. Laboratory component

The practical classes follow the subject of programming for the Windows platform

  A. Development practice for the Windows platform under Win32

   i. Unicode applications.

   ii. Process creation and management.

   iii. Registry.

   iv. Multithreaded programming

   v. Synchronization mechanisms

   vi. Communication mechanisms. Named pipes. Client-server applications. API for overlapped IO.

   vii. Memory-mapped files

   vii. Security mechanisms API.

   ix. Creation of applications with graphical interface. Events and event handling cycle. Interface elements. Dialog boxes. Menus. Resources.

   x. Dynamic Link Libraries – DLL

Curricular Unit Teachers

José Luis Guerra da Rocha Nunes

Grading Methods

The assessment consists of 2 components:

  A. Practical assignment

    i. Conducted throughout the semester, with several submissions and verification/evaluation of progress in laboratory classes. The final submission date for the Practical assignment (PA) occurs only once and coincides with the end of the teaching component. The grade obtained is used in all periods of the academic year. No other form or submission date is foreseen.

    ii. Students who completed the PA in the previous academic year and were subject to evaluation may use that grade. This use is not automatic and presupposes the expression of interest by those interested, through the Inforestudante platform, on the PA submission date. The grade obtained is adapted to the weight of this year's work.

    iii. The PA is optional and has a weight of up to 4 points in the final grade. Two points ​​are obtained through the evaluation in laboratory classes (functional verification), after each submission. If they wish, students may submit to a final defense, with the work being evaluated for 4 points. This defense is individual and serves to assess the student's knowledge of the topics used in the PA. The grade obtained in the functional assessment (in laboratory classes) is not guaranteed if the student submits to the final defense.

  B. Exam

    i. It includes two components: theoretical part and practical part.

    ii. It has a weighting of: 16 points in the final grade for students who complete the practical work and submit to an individual defense; 18 for students who complete the practical work but do not defend it; and 20 points for those who choose not to submit the practical work.

    iii. To pass the course, students must have a minimum of 35%.

If there is any doubt about the authorship of any evaluation element, an oral evaluation may be conducted.


    Internship(s)

    NAO

    Bibliography

    Silberschatz, Abraham, Gagne Greg, Galvin Peter B. (2018) Operating Systems Concepts (10th Ed.), Addison-Wesley

    Hart, Johnson M. (2010) Windows System Programming (4th edition). Addison-Wesley

    Solomon, David A.,Inside Windows NT (2nd Ed.), Microsoft Press

    Schildt, Herbert, Windows NT 4 Programming, Osborne McGraw Hill