COURSE DESCRIPTION 2023-2024
Updated: 01/06/23
(*)This page is an automatically translated version of the original language version, which has been approved by the UPV for official purposes.
1. Code: 34394 Name: System Programming
2. Credits: 4,50 --Lecture: 3,00 --Practice: 1,50 Type of Course: Elective
Degree: 2270-Master's Degree in Automation and Industrial Computing
Module: 1-Módulo Común Subject: 4-Industrial computing
University Center: Master's Degrees Programmes Unit
3. Coordinator: Andreu García, Gabriela
Departament: COMPUTER ENGINEERING
4. References
Unix programacion práctica Robbins, Kay A.
Unix systems programming : communication, concurrency, and threads Robbins, Kay A.
Fundamentos de sistemas operativos Silberschatz, Abraham
El lenguaje de programación C Kernighan, Brian W.
El libro de UNIX Sarwar, Syed Mansoor
5. Course Outline
Course objectives
Acquire the ability to use tools to solve systems with concurrency problems in a UNIX programming environment.
The main objectives of this course are
--To make known the services provided by the Operating Systems:
----Acquire user-level skills in the use of an operating system. Use of the Shell tool.
----Acquire proficiency in the use of application development interfaces (system call APIs) using computer resources (memory, I/O,
CPU).
--To study the problems of working with concurrent applications by addressing feasible solutions to be applied to real problems:
----Developing applications in C using Unix system calls
Contextualization of the course
This course is taught in the first four-month period of the Master's Degree in Automation and Industrial Computing. Its main
objective is to provide knowledge about the operation of the Operating System, the services it offers and to acquire skills in the use
of its services to develop applications. The concepts of process and file (two abstractions provided by the system) are addressed,
while at the practical and user level, the user works in Linux, with the command interface or Shell and develops applications in C
language, making use of the system calls. Linux is presented as a free, powerful and flexible system on which to develop
applications.
This course teaches fundamental concepts for master students who have to work with the computer and carry out developments
on it. Microprocessors or single-platform systems such as Jetson Nano, Raspberry Pi or Intel's Joule come with an embedded
Linux system. Knowledge such as file management in a directory organization, the use of calls to request services to the system,
as well as the implementation of concurrent activities within the same process and the synchronization between these activities,
among others, will allow students to work on a wide variety of industrial topics and efficiently face the development of projects on
workstations and large systems.
The study of this subject is complemented by other subjects such as "Design and Development of Real-Time Systems", "Physical
Interfaces and Embedded Systems" and "Networks and Distributed Systems for Control". In addition, the contents studied in
Systems Programming are useful in subjects associated with other subjects such as: "Robot control and programming" or
"Computer vision in industry".
6. Recommended Prior Knowledge
Basic knowledge of programming languages.
Knowledge of the main elements that make up a computer, as well as their functions.
7. Results
Fundamental results
02(ES) Have adequate knowledge of the scientific and technological aspects of industrial computing
03(ES) Calculate and design applications for the automatic control of systems in industrial
environments
CG2(GE) That students acquire a multidisciplinary, modern and updated training in the thematic
Pag. 1 / 3
COURSE DESCRIPTION 2023-2024
Updated: 01/06/23
(*)This page is an automatically translated version of the original language version, which has been approved by the UPV for official purposes.
7. Results
Fundamental results
areas of control and industrial informatics
CB6(GE) Possess and understand knowledge that provides a basis or opportunity to be original in
the development and/or application of ideas, often in a research context
CB7(GE) Students should be able to apply their acquired knowledge and problem-solving skills in
new or unfamiliar environments within broader (or multidisciplinary) contexts related to their area of
study
CB10(GE) That students possess the learning skills that will enable them to continue studying in a
manner that will be largely self-directed or autonomous.
UPV-Generic Student Outcomes
(3) Teamwork and leadership
- Activities carried out to achieve the student outcome
Work development
- Assessment criteria
· Presentation and defense of the work performed
8. Syllabus
1. UT1: UNIX: Working with the Shell
2. UT2: Compilation and programs in C
3. UT3: System calls: operating system services
4. UT4: Process creation
5. UT5: Archives and Process Communication
6. UT6: Asynchronous events: signal handling
7. UT7: Concurrent activities: Execution threads
8. UT8: Concurrency problem: critical section
9. UT9: Concurrency with POSIX semaphores
10. UT10: Concurrency with Mutex
11. UT11: Working solutions with Monitor
12. Practice 1: Shell utilities: process monitoring
13. Practice 2: Process creation and tube communication
14. Practice 3: Concurrency: working with threads
15. Practice 4: Practical work on synchronization with POSIX semaphores
16. Practice 5: Practical work on synchronization with mutex
17. Performance of practical work
18. Completion of a written evaluation test
9. Teaching and Learning Methodologies
UN LE SE PS LS FW CP AA CH NCH TOTAL HOURS
1 3,50 -- -- -- -- -- -- 3,50 2,00 5,50
2 3,50 -- -- -- -- -- -- 3,50 5,00 8,50
3 1,50 -- -- 0,00 -- -- -- 1,50 1,00 2,50
4 3,00 -- -- -- -- -- -- 3,00 2,00 5,00
5 2,50 -- -- -- -- -- -- 2,50 3,00 5,50
6 2,50 -- -- -- -- -- -- 2,50 2,00 4,50
7 1,50 -- -- -- -- -- -- 1,50 2,00 3,50
8 1,50 -- -- -- -- -- -- 1,50 2,00 3,50
9 3,00 -- -- -- -- -- -- 3,00 2,00 5,00
10 2,50 -- -- -- -- -- -- 2,50 3,00 5,50
11 2,50 -- -- -- -- -- -- 2,50 3,00 5,50
12 -- -- -- 2,50 -- -- -- 2,50 2,50 5,00
13 -- -- -- 2,50 -- -- -- 2,50 1,50 4,00
14 -- -- -- 2,50 -- -- -- 2,50 1,50 4,00
Pag. 2 / 3
COURSE DESCRIPTION 2023-2024
Updated: 01/06/23
(*)This page is an automatically translated version of the original language version, which has been approved by the UPV for official purposes.
9. Teaching and Learning Methodologies
UN LE SE PS LS FW CP AA CH NCH TOTAL HOURS
15 -- -- -- 2,50 -- -- -- 2,50 1,50 4,00
16 -- -- -- 2,50 -- -- -- 2,50 1,50 4,00
17 2,50 -- -- 2,50 -- -- 1,00 6,00 20,00 26,00
18 -- -- -- -- -- -- 1,50 1,50 20,00 21,50
TOTAL HOURS 30,00 -- -- 15,00 -- -- 2,50 47,50 75,50 123,00
UN: Unit. LE: Lecture. SE: Seminar. PS: Practical session. LS: Lab sessions. FW: Field work. CP: Computer-mediated practice. AA: Assessment activities. CH: Contact
hours. NCH: Non contact hours.
10. Assessment
Outline Num. Acts Weight (%)
(14) Written test 1 40
(05) Academic work 1 60
ORDINARY EVALUATION:
The Final Grade will be obtained mainly from the results obtained in two tests:
-- Written test (29% of the Final Grade)
Combination of short, multiple-choice questions and questions on the theoretical and practical subjects taught
-- Practical development work with presentation and defense of the same (71% of the Final Grade)
Development of a synchronization problem using C and Unix programming tools.
RECOVERY:
- Those students who do not pass the practical work may opt (after consultation with the professor) for a new evaluation of the
same within a maximum period of 15 days.
IMPROVEMENT OF THE FINAL GRADE (Only students with a final grade equal to or higher than 5 are eligible for this test):
-Those students who wish to improve their Final Grade, may choose (after consultation with the teacher) to carry out a new
practical work, whose delivery will be within a maximum period of 15 days (coinciding with the dates of recovery) and that will
contribute 71% to the Final Grade.
WARNING: The final grade is based on the grade obtained in the last paper presented. That is to say, the grade obtained in the
grade improvement work cancels the grade obtained in the practical work presented in the ordinary evaluation when estimating
the grade for the grade in the Proceedings.
11. Absence threshold
Activity Percentage Observations
Lecture Theory 20
Seminar Theory 0
Lecture Practice 0
Laboratory Practical 20
Computer Practice 0
Field Practice 0
Pag. 3 / 3