Upload
others
View
6
Download
0
Embed Size (px)
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
● André Mateus– [email protected]
● Bruno Ribeiro– [email protected]
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