• Non ci sono risultati.

Telefono Sede Dipartimento di Informatica 6 piano Stanza 610 Sede virtuale Ricevimento (giorni, orari e

N/A
N/A
Protected

Academic year: 2022

Condividi "Telefono Sede Dipartimento di Informatica 6 piano Stanza 610 Sede virtuale Ricevimento (giorni, orari e"

Copied!
12
0
0

Testo completo

(1)

Principali informazioni sull’insegnamento Denominazione

dell’insegnamento

Architettura degli Elaboratori e Sistemi Operativi (A)

Corso di studio Informatica

Anno di corso 2021 - 2022

Crediti formativi universitari (CFU) / European Credit Transfer and Accumulation System (ECTS):

9 (7+2)

SSD ING-INF/05

Lingua di erogazione Italiano

Periodo di erogazione Primo semestre (Settembre 2021 – Gennaio 2022) Obbligo di frequenza Frequenza consigliata

Docente

Nome e cognome Donato Impedovo

Indirizzo mail

d

onato.impedovo@uniba.it

Telefono +39 080 544 2280

Sede Dipartimento di Informatica – 6 piano – Stanza 610

Sede virtuale Teams

Ricevimento (giorni, orari e modalità)

Su prenotazione tramite email

Syllabus

Obiettivi formativi Comprensione delle fondamentali problematiche dei Sistemi di Elaborazione e dei Sistemi Operativi. Conoscenza dei principi, delle tecniche e dei metodi di funzionamento e di utilizzazione delle Architetture di Calcolo e dei Sistemi Operativi. Capacità di utilizzare e gestire i sistemi di calcolo, applicando le conoscenze acquisite nel corso.

Prerequisiti Nessuno

Contenuti di insegnamento (Programma)

INTRODUZIONE

• Approccio strutturale

• Linguaggi: livelli e macchine virtuali. Attuali macchine multilivello. Evoluzione delle macchine multilivello Pietre miliari nell'architettura dei computer:

• Tipologie di computer: Forze tecnologiche ed economiche. Tipologie di computer. Computer usa e getta. Microcontrollori. Dispositivi mobili e da gioco.

Personal computer. Server. Mainframe.

• Esempi di famiglie di computer

• Unità metriche

ORGANIZZAZIONE DEI SISTEMI DI CALCOLO

• Processori: Organizzazione della CPU. Esecuzione dell'istruzione. RISC contro CISC. Principi di

progettazione dei calcolatori moderni. Parallelismo a livello di istruzione. Parallelismo a livello di processore

• Memoria principale: Bit. Indirizzi di memoria.

Ordinamento di byte. Codici correttori. Memorie cache.

Assemblaggio e tipi di memoria

• Memoria secondaria

(2)

• Input/Output: Bus. Terminali. Mouse. Controller per videogiochi. Stampanti. Apparecchiature per

telecomunicazioni. Macchine fotografiche digitali.

Codifica dei caratteri

LIVELLO LOGICO DIGITALE

• Teoria dell'Algebra di Boole

• Livello logico digitale

• Circuiti logici digitali elementari

• Memoria

• Chip della CPU e bus

• Esempi di chip della CPU

• Esempi di bus

• interfacce

LIVELLO DI MICROARCHITETTURA E DI ARCHITETTURA

• Esempi di microarchitettura

• Esempio di ISA: IJVM

• Implementazione di esempio

• Progettazione del livello di microarchitettura

• Miglioramento delle prestazioni

• Esempi del livello di microarchitettura

• Livello di architettura dell'insieme di istruzioni:

Panoramica del livello ISA; Proprietà del livello ISA;

Modelli di Memoria; Registri; Istruzioni; Tipi di dati; Tipi di dati numerici; Tipi di dati non numerici

INTRODUZIONE AI SISTEMI OPERATIVI

• Obiettivi e funzioni dei sistemi operativi

• Il sistema operativo come interfaccia utente/computer

• Il sistema operativo come gestore delle risorse

• Facilità di evoluzione di un sistema operativo

• Evoluzione dei sistemi operativi

• Elaborazione seriale

• Semplici sistemi batch

• Sistemi batch multiprogrammati

• Sistemi time-sharing

• Caratteristiche dei sistemi operativi moderni

DESCRIZIONE E CONTROLLO DEI PROCESSI

• Stati dei processi

• Un modello a due stati

• Creazione e terminazione dei processi

• Un modello a cinque stati

• Processi sospesi

• Descrizione dei processi

• Strutture di controllo dei processi

• Attributi dei processi

• EFLAGS del Pentium

• Il ruolo del PCB

(3)

• Controllo dei processi

• Modi di esecuzione

• Creazione dei processi

• Cambio dei processi: cambiamento di modo

• cambiamento dello stato di un processo

• Esecuzione del Sistema Operativo: Kernel non implementato con processi; Esecuzione

• all’interno dei processi utente; Sistemi operativi basati sui processi

• Gestioni dei processi

• Stati dei processi

• Descrizione dei processi

THREAD, SMP E MICROKERNEL

• Processi e thread: Multithreading; Funzionalità dei thread; Thread a livello utente e di Kernel

• Multiprocessing simmetrico: Architettura SMP

• Organizzazione SMP; Considerazioni per la progettazione di sistemi operativi multiprocessore

• Processi e thread concorrenti; Schedulazione;

Sincronizzazione

• Microkernel: Architettura del Microkernel; Benefici di un’organizzazione a mikrokernel; Prestazioni del Microkernel; Progettazione del Microkernel

CONCORRENZA: Mutua esclusione e Sincronizzazione.

• Principi della concorrenza: Un semplice esempio

• Problemi di concorrenza nei sistemi operativi

• Interazione tra processi: competizione per le risorse;

cooperazione tramite condivisione; cooperazione tramite comunicazione

• Mutua esclusione: approcci software

• Algoritmo di Dekker: Insidie della programmazione concorrente

• tentativo di soluzione e la soluzione corretta

• Algoritmo di Peterson

• Mutua esclusione supporto hardware

• Abilitazione e disabilitazione degli interrupt

• Istruzioni di macchina speciali: Test and set e Scambio

• Uso di Test-set e Scambio per la mutua esclusione

• Semafori

• Definizione della primitiva Signal e wait

• Primitive Signal e wait per i semafori binari

• Mutua esclusione con semafori

• Il problema del produttore consumatore

• Soluzione non corretta del problema produttoreconsumatore con semafori binari nel caso di buffer

infinito

• Soluzione generale corretta del problema del produttore-consumatore nel caso di buffer infinito

• Soluzione del problema del produttore-consumatore nel

(4)

caso di buffer finito

• Implementazione dei semafori

• Il problema del barbiere ingiusto

• Il problema del barbiere equo

• Monitor

• Monitor di Hoare

• Risoluzione del problema Produttore/Consumatore con Monitor Hoare

• Monitor di Lampson-Redell

• Scambio di messaggi

• Sincronizzazione

• Indirizzamento

• Formato di messaggi

• Organizzazione delle code

• Mutua esclusione usando i messaggi

• Soluzione del problema produttore/consumatore con buffer limitato usando i messaggi

GESTIONE DELLA MEMORIA

• Introduzione

• allocazione contigua della memoria

• monoallocazione

• partizionamento statico

• partizionamento dinamico

• segmentazione

• allocazione non contigua della memoria

• paginazione

• memoria virtuale

• Principi di base della gestione della Memoria Centrale

• Parametri di confronto degli schemi di gestione

MEMORIA VIRTUALE

• Principi Operativi

• Memoria Virtuale con Paginazione

• Tabella delle pagine

• Tabella di descrizione dei file

• Interrompibilità dell’istruzione ed esempi esplicativi

• Gestione della memoria virtuale:

• strategia di allocazione

• strategia di ricerca

• strategia di sostituzione

• strategia di posizionamento

• Località dei programmi

• Algoritmi di sostituzione delle pagine

• Algoritmo FIFO

• Algoritmo LRU

• Algoritmo di Belady

• Algoritmo NRU

• Confronto operativo tra gli algoritmi

• Concetti di distanza futura e distanza passata

• Working-Set

(5)

• Supporti hardware per la memoria virtuale

FILE SYSTEM

• I file

• Denominazione di File

• Struttura dei File

• Tipi di File

• Accesso ai File

• Attributi

• Operazioni sui file

• File mappati in memoria

• Le Directory

• Sistemi Gerarchici di Directory

• I path name

• Operazioni sulle Directory

• Implementazione del File System

• Implementazione dei File

• Implementazioni delle Directory

• File condivisi

• Gestione dello spazio su disco

• Affidabilità del file system

• Prestazioni del file system

• Sicurezza

• L’ambiente di sicurezza

• Principi di progettazione per la sicurezza

• Autenticazione dell’utente

• Meccanismi di protezione

• I domini di protezione

• Liste di controllo degli accessi

• Le capability list

• Modelli di protezione

• Canali nascosti

Testi di riferimento 1. Architettura dei Calcolatori: un approccio strutturale: A. S. Tanenbaum, Pearson 2013

2. Sistemi Operativi Concetti ed esempi: Silberschatz. Pearson 2014 3. Sistemi Operativi; William Stallings: Jackson Libri, 2005

Note ai testi di riferimento I libri di testo sono integrati con le slide e le dispense del docente

Organizzazione della didattica Ore

Totali Didattica frontale Pratica (laboratorio, campo, esercitazione, altro) Studio individuale

225 56 30 139

CFU/ETCS

9 7 2

Metodi didattici

Il corso viene erogato in modalità mista (lezione frontale e a distanza) Risultati di apprendimento

previsti

(6)

Conoscenza e capacità di comprensione

Lo studente comprende i temi affrontati nel corso e riesce ad elaborare un ragionamento critico, con visione d’insieme e approfondita rispetto agli argomenti trattati

Conoscenza e capacità di comprensione applicate

Lo studente è in grado di applicare le competenze acquisite nelle specifiche applicazioni previste dalla disciplina

Competenze trasversali • Autonomia di giudizio

• Abilità comunicative

• Capacità di apprendere in modo autonomo Valutazione

Modalità di verifica dell’apprendimento

Prova scritta con domande a risposta aperta e conseguente prova orale. Non sono previste prove in itinere.

Criteri di valutazione • Conoscenza e capacità di comprensione

• Conoscenza e capacità di comprensione applicate

• Autonomia di giudizio

• Abilità comunicative

• Capacità di apprendere Criteri di misurazione

dell'apprendimento e di attribuzione del voto finale

La prova scritta verrà valutata rispetto alle competenze espresse dallo studente nell’elaborato. La prova orale considererà, oltre alla preparazione complessiva, la capacità di argomentare e la completezza dell’esposizione

Altro

(7)

General information

Academic subject Computer Architecture and Operating Systems (A)

Degree course Informatica

Academic Year 2021-2022

European Credit Transfer and Accumulation System (ECTS)

9 (7+2)

Language Italian

Academic calendar (starting and ending date)

First semester (September 2021 - January 2022)

Attendance Recommended

Professor/ Lecturer

Name and Surname Donato Impedovo

E-mail

d

onato.impedovo@uniba.it

Telephone +39 080 544 2280

Department and address Department of Computer Science – 6th floor - Room 610

Virtual headquarters Teams

Tutoring (time and day) On reservation by email

Syllabus

Learning Objectives Understanding of the fundamental problems of Computing Systems and Operating Systems. Knowledge of the principles, techniques and methods of operation and use of Computing Architectures and Operating Systems. Ability to use and manage computing systems, applying the knowledge acquired in the course.

Course prerequisites None

Contents INTRODUCTION

- Structural approach

- Languages: layers and virtual machines. Current machines multilevel machines.

Evolution of multilevel machines Milestones in computer architecture:

- Types of computers: Technological and economics. Types of computers.

Disposable computers. Microcontrollers. Mobile and gaming devices. Personal computers. Servers. Mainframes.

- Examples of computer families - Metric units

ORGANIZATION OF THE SYSTEMS OF CALCULATION - Processors: Organization of the CPU. Execution instruction. RISC versus CISC. Principles of design of modern computers. Parallelism at instruction level. Parallelism at processor level - Main memory: Bits. Memory addresses.

Sorting of bytes. Corrector codes. Cache memories.

Assembly and memory types - Secondary memory

- Input/Output: Buses. Terminals. Mouse. Controller for video games. Printers. Telecommunications

telecommunications equipment. Digital cameras.

Character encoding

(8)

DIGITAL LOGIC LEVEL - Boolean Algebra Theory - Digital Logic Level

- Elementary digital logic circuits - Memory

- CPU chips and buses - Examples of CPU chips - Bus examples

- interfaces

MICROARCHITECTURE LEVEL AND ARCHITECTURE

- Microarchitecture Examples - ISA Example: IJVM

- Example Implementation - Microarchitecture Layer Design - Performance Enhancement - Microarchitecture Layer Examples - Instruction set architecture layer:

ISA layer overview; ISA layer properties;

Memory Models; Registers; Instructions; Data Types; Types Numeric Data Types; Non-Numeric Data Types

INTRODUCTION TO OPERATING SYSTEMS - Objectives and Functions of Operating Systems - The operating system as user/computer interface - The operating system as a resource manager - Ease of evolution of an operating system - Evolution of operating systems

- Serial processing - Simple batch systems

- Multiprogrammed batch systems - Time-sharing systems

- Characteristics of modern operating systems

PROCESS DESCRIPTION AND CONTROL - States of the processes

- A model to two states

- Creation and termination of the processes - A five-state model

- Suspended Processes - Description of the processes

- Structures of control of the processes - Attributes of the processes

- Pentium EFLAGS - The Role of the PCB - Process Control - Execution Modes

(9)

- Creating Processes

- Changing processes: changing mode - Changing the state of a process - Operating System Execution: Kernel not implemented with processes; Execution

- within user processes; Operating systems based on processes

- Management of processes - Process States

- Processes description

THREADS, SMP AND MICROKERNEL

- Processes and Threads: Multithreading; Thread Functionality Threads; User-level and Kernel-level Threads

- Symmetric Multiprocessing: SMP Architecture - SMP Organization; Considerations for Designing Multiprocessor Operating Systems - Concurrent processes and threads; Scheduling;

Synchronization

- Microkernel: Microkernel architecture; Benefits of a mikrokernel organization; Performance of the Microkernel; Microkernel Design

COMPETITION: Mutual Exclusion and Synchronization.

- Principles of Concurrency: A Simple Example - Competition issues in operating systems

- Interaction between processes: competition for resources;

cooperation through sharing; cooperation through communication

- Mutual exclusion: software approaches

- Dekker's Algorithm: Pitfalls of Concurrent Programming concurrent

- Solution attempt and correct solution - Peterson's Algorithm

- Mutual Exclusion Hardware Support - Enabling and disabling interrupts

- Special machine instructions: Test and set and Exchange - Use of Test-set and Exchange for mutual exclusion - Semaphores

- Defining the Signal and Wait Primitive

- Signal and wait primitive for binary semaphores - Mutual exclusion with semaphores

- The producer-consumer problem

- Incorrect solution of the producer-consumer problem with binary semaphores in the case of buffer

infinite

- General correct solution of the producer-consumer problem producer-consumer in the case of infinite buffer

- Solution of the producer-consumer problem in the case of the case of finite buffer

- Implementation of semaphores

(10)

- The unfair barber problem - The problem of the fair barber - Monitor

- Monitor of Hoare

- Resolution of the Producer/Consumer problem with Hoare Monitor

- Lampson-Redell Monitors - Message Exchange - Synchronization - Addressing - Message format - Organization of queues

- Mutual exclusion using messages

- Solution of producer/consumer problem with limited buffer using messages

MEMORY MANAGEMENT - Introduction

- contiguous memory allocation - monoallocation

- static partitioning - dynamic partitioning - segmentation

- non-contiguous memory allocation - paging

- virtual memory

- Basic Principles of Central Memory Management - Comparison parameters of management schemes

VIRTUAL MEMORY - Operating Principles - Virtual Memory with Paging - Table of Pages

- File Description Table

- Interruptibility of the instruction and explanatory examples - Virtual Memory Management

- allocation strategy - search strategy - replacement strategy - Positioning strategy - Program Locations

- Page replacement algorithms - FIFO algorithm

- LRU algorithm - Belady Algorithm - NRU algorithm

- Operational comparison between algorithms - Concepts of future distance and past distance - Working-Set

- Hardware support for virtual memory

(11)

FILE SYSTEM - Files - File naming - File Structure - File Types - File Access - File Attributes - File Operations - Memory Mapped Files - Directories

- Hierarchical Directory Systems - Path Names

- Directory Operations - File System Implementation - File implementation - Directory implementations - Shared files

- Disk Space Management - File System Reliability - File System Performance - Security Environment - The security environment - Security design principles - User authentication - Protection mechanisms - Protection domains - Access control lists - Capability lists - Protection models - Hidden channels

Books and bibliography 1. Architettura dei Calcolatori: un approccio strutturale: A. S. Tanenbaum, Pearson 2013

2. Sistemi Operativi Concetti ed esempi: Silberschatz. Pearson 2014 3. Sistemi Operativi; William Stallings: Jackson Libri, 2005

Additional materials Textbooks are supplemented with the teacher's slides and handouts

Work schedule

Total Lectures Hands on (Laboratory, working groups, seminars, field trips)

Out-of-class study hours/ Self-study hours

Hours

225 56 30 139

ECTS

9 7 2

Teaching strategy

The course is delivered in mixed mode (frontal and distance learning) Expected learning outcomes

(12)

Knowledge and understanding on:

The student understands the issues addressed in the course and is able to develop critical reasoning, with an overview and depth with respect to the topics covered Applying knowledge and

understanding on:

The student is able to apply the skills acquired in the specific applications provided by the discipline

Soft skills • Making informed judgments and choices

• Communicating knowledge and understanding

• Capacities to continue learning Assessment and feedback

Methods of assessment Written test with open-ended questions and subsequent oral test. There are no on-going tests.

Evaluation criteria • Knowledge and understanding o xxxx

• Applying knowledge and understanding o xxxxx

• Autonomy of judgment o xxxx

• Communicating knowledge and understanding o xxxxxxxxxxxxxx

• Communication skills o xxxxxxxxxxxxxx

• Capacities to continue learning o

Criteria for assessment and attribution of the final mark

The written test will be evaluated with respect to the skills expressed by the student in the paper. The oral test will consider, in addition to the overall preparation, the ability to argue and the completeness of the exposure.

Additional information

Riferimenti

Documenti correlati

• A closed chain of threads exists such that each thread holds at least one resources needed by the next thread in the chain. • then a deadlock

– Local variables of the kernel are saved on top of the process stack. – Only a small part (the process switch) is independent of the

● new-generation massive parallel HPC systems (like bluegene) already have the Python interpreter on their thousands of compute nodes..

Doppio Diploma, quindi, è oggi l’unico percorso di eccellenza disponibile in Italia che permette ai ragazzi delle scuole superiori di frequentare corsi online direttamente con

Obiettivi formativi  Progettare e implementare software (con particolare riferimento alla programmazione orientata agli oggetti)..  Sviluppare modi efficaci ed

Se si desidera programmare autonomamente una riunione che avverrà in futuro con utenti interni e/o esterni, senza sfruttare il link messo a disposizione da questa Direzione

 kick off meeting: costs for kick-off meeting organised by the granting authority are eligible (travel costs for maximum 2 persons, return ticket to Brussels

 kick off meeting: costs for kick-off meeting organised by the granting authority are eligible (travel costs for maximum 2 persons, return ticket to Brussels