Systems programming - ULisboa

Preview:

Citation preview

Systems programming

MEEC /MEAer – 2020/2021

Online Version!

Offering● MEEC (Electrical Engineering)

– 97 students

● MEAer (Aerospace Engineering)– 34 students

● MEFT (Physics Engineering)– 2 students

Objectives● Present concepts of systems programming● Exercise direct interaction with the OS● Increase knowledge on the organization and

systems interface● Explore tools and functionality for good SW

development practices

Classes● Theoretical

– Presentation of course material– Resolution of some problems (with programming)

● Laboratories– Resolution of programming problems

Theoretical classes● Theoretical

– Monday 12:30.. 14:00 –● https://videoconf-colibri.zoom.us/meeting/85729332982

– Wednesday 11:00 – 12:30 – EA1● https://videoconf-colibri.zoom.us/meeting/83676480362

● ZOOM till the end of the Semester

Theoretical classes● Classes will be recorded and made avilable

to all.● Access to recording

– Office 365 activation– Access to TEAMS

Laboratory Classes● Exercise theoretical concepts

– Use of systems and libraries– Implementation of simple systems

● Implementation of the project– Staring in the middle of the semester

● Based in C and python

Laboratory Classes● Tuesday – 9:30 .. 11:30● Tuesday – 11:30 .. 13:30● Wednesday – 14:00 – 16:00● Friday – 10:00 – 12:00● Friday – 12:00 – 14:00● ZOOM till the end of the semester

– Links to be defined

● Enrollment in FENIX– During first week of classes

Laboratory Classes● Assignment defined the previous week● Laboratory work does not fit into 2 hours

– Requires study of fundamental concepts– Requires understanding the problem– Requires work at home

● Before or after laboratory

● Teacher will probably host and record a live resolution of the laboratories– Twitch

Teaching Staff● João Nuno Silva

– joao.n.silva@tecnico.ulisboa.pt

● André Mateus– andre.mateus@tecnico.ulisboa.pt

● Bruno Ribeiro– bruno.d.ribeiro@tecnico.ulisboa.pt

Communication● Microsoft TEAMS

– Direct chat (private content)– Video call

● Programação de Sistemas’ TEAM– Multiple specific channels– Repository of

● Class recordings● Announcements● Reading material● slides

Communication● Microsoft TEAMS

– https://fenix.tecnico.ulisboa.pt/disciplinas/PSis64511132646/2020-2021/2-semestre/teams

● Please install application– Mobile or desktop– To receive notifications– To ease communication with everybody

● Please abuse TEAMS

Evaluation● Project

– 50% of final grade– Minimum grade – 10– Last week

● presentation and discussion of projects

● Exam– 50% of final grade– Minimum grade - 9

Project● Programming assignment

– Complex system– Using presented technologies and techniques

● To be developed during the semester– In groups of two students– To be submitted on the last week of classes

● Assigned in the middle of the semester

Project● Default Assignment defined by teaching staff● Students can proposed topic

– From Thesis (for instance)

● Technologies– C / Python– Communication (sockets or high level MQ)– Synchronization– Testing

Academic honesty● In PSIS plagiarism includes:

– Use of ideas, code or solutions from other students, person or source, without proper credit acknowledgement

● Students can discuss their problems with other colleagues, but should mention that in the submitted work. This discussion will not lower the grade

● BUT:– Students should not copy code from or provide solutions to

other colleagues

Academic honesty● Academic dishonesty also included copying in test or

exams● Exams are solved without any external

help(communication of printed material)

● Academic dishonesty is considered fraud.● The immediate consequence is the automatic fail in

the evaluation where a copy of fraud was detected

Student profile● Course

– MEEC– MEAer– MEFT– MMA

● Previous knowledge– Programming language

● C

– Operating Systems (user level)– Networking sockets (not required)

Bibliography● Operating Systems: Principles and Practice

– Michael Dahlin, Thomas Anderson

● Modern Operating Systems; A.S. Tanenbaum; Prentice-Hall– Theoretical classes

● Advanced Programming in the UNIX Environment ; W. Richard Stevens, Stephen A. Rago; Addison-Wesley– Used in laboratory and project

● Other– Papers, book chapters– Provided in the FENIX

System● A system is a set of interacting or

interdependent components forming an integrated whole.

● Delineated by its spatial and temporal boundaries,

● Surrounded and influenced by its environment● Described by its structure and purpose● Expressed in its functioning.

System Programming● Understanding of a System

– e.g. Operating System

● Use of a System– e.g. Operating System

● Development/implementation of a System– project

Systems programming● Fundamental in the area of computer networks

– And Distributed Systems / Internet

● Presents the interface and connection between:– Hardware (CPU/ memory/ peripherals)– Applications

● Relevant in other areas– Telecommunication– Control

Program● Systems● Introduction to Software engineering

– Requirements

● SYSML● Architectures and patterns● Operating System Architectures● Operating System programming

– Process management– Threads– Synchronization

● Communication– Shared memory– Inter-process communication– Data Interoperability

● Performance evaluation● Event based programming● Interoperability mechanism● Software testing

● C review● Processes and shared

memory● Threads and

Synchronization● Communcation● Performance evaluation● SW development tools● Software testing

Next on PSIS● System

– A Unified Formalism for Complex Systems Architecture – Ch 1

● Systems’ requirements– IEEE Guide for Developing System Requirements

Specifications – IEEE 1233– IEEE Recommended Practice for Software

Requirements Specifications – IEEE 830