Fundamentos de Sistemas de Operação (FSO) Lic. Eng. Informática 2009/2010 Docentes: José A. Cardoso e Cunha Hervé Paulino, Rui Marques Área Científica de Arquitectura de Sistemas Computacionais, Dep. Informática FCT/UNL
Níveis de Arquitectura de um Sistema Computacional aplicações (Chamadas ao SO) (Instruções da máquina hardware) linguagens bibliotecas sistema de operação arquitectura do computador FSO 9/15/2009 FSO - 09/10 2
FSO é parte da área científica de Arquitectura de Sistemas Computacionais 1o ciclo Licenciatura em Eng. Informática 1o ano: ISRC e AC 2o ano: FSO e Redes de Computadores 3o ano: opcionais: Codificação da Informação; Sistemas Distribuídos 2o ciclo Mestrado em Eng. Informática Sistemas Distribuídos Sistemas de Operação Computação Paralela e Distribuída Segurança de Sistemas e Redes de Computadores Sistemas de Computação Móvel e Ubíqua Sistemas e Tecnologias de Middleware Redes de Computadores TCP/IP Sistemas de Computação em Grid Gestão de Centros de Dados 3o ciclo Doutoramento em Eng. Informática Arq. Computadores, Sist. Operação, Redes Computadores, Sistemas Distribuídos Projectos CITI - Centro de Investigação em Informática e TI 9/15/2009 FSO - 09/10 3
Docentes Responsável da disciplina: José Cardoso e Cunha, jcc@di.fct.unl.pt Professor Catedrático Coordenador da Área de ASC do Dep. Informática Doutorado em Informática (UNL) Licenciado em Eng. Informática (FCT-UNL) Licenciado em Eng. Electrotécnica (IST-UTL) (Ramo Telecom. e Electrónica) Docentes das práticas: Hervé Paulino herve@di.fct.unl.pt Professor Auxiliar Doutorado em Informática (UNL) Licenciado em Ciências da Computação (FC-UP) Rui Marques rfm@di.fct.unl.pt Professor Auxiliar Doutorado em Informática (UNL) Licenciado em Eng. Informática (FCT-UNL) 9/15/2009 FSO - 09/10 4
Programa de FSO 1. Objectivos e tipos de Sistemas de Operação (SO) 2. Conceito de Processo 3. Programação Concorrente 4. Gestão de Memória 5. Sistemas de Ficheiros e operação das Entradas e Saídas 6. Interface de Programação a nível das Chamadas ao SO Prática Laboratorial: Programação a nível das chamadas ao SO (Linux) envolvendo: interacção com o utilizador (ao nível do Shell) programação de processos concorrentes comunicação e sincronização entre processos: memória partilhada, mensagens e sinais acesso ao sistema de ficheiros 9/15/2009 FSO - 09/10 5
Funcionamento da disciplina Aulas teóricas: 2 turnos, 2 aulas / semana Hora de início das aulas: à hora+10min. Aulas de quinta-feira: intervalo de 10 min. ao fim de 50 min. Horário de dúvidas: José Cardoso e Cunha (ver na página) Aulas práticas: 6 turnos +1 criado a 15/09/2009 Início na semana de 21 de Setembro Horário de dúvidas: Hervé Paulino e Rui Marques (ver na página) 9/15/2009 FSO - 09/10 6
Teóricas: Teóricas e Práticas:? Compreender as ideias e discutir os conceitos Práticas: Fazer programas e experimentar, ilustrar os conceitos, compreender melhor 9/15/2009 FSO - 09/10 7
Nas aulas práticas Pratica-se Fazendo: programas em C utilizando a interface de chamadas ao sistema UNIX Utilizam-se os conceitos e técnicas de programação que são apresentados na teórica Os trabalhos práticos incidem sobre a aplicação da matéria apresentada na aulas teóricas 9/15/2009 FSO - 09/10 8
À partida... Saber as matérias de ISRC, IP e AC 9/15/2009 FSO - 09/10 9
Conselhos gerais Sigam as aulas e a matéria desde o início Façam os trabalhos práticos Façam os testes de auto-avaliação (na página da disciplina, de 15 em 15 dias) Esclareçam as dúvidas DURANTE e não no fim do semestre 9/15/2009 FSO - 09/10 10
Apoio à cadeira Informação on-line a partir de: http://asc.di.fct.unl.pt/~jcc/fso-09-10 Livros e elementos de base Elementos complementares 09-09-07 9/15/2009 FSO - 09/10 07/08 11
LIVROS de base Elementos de Estudo Sistemas Operativos, J.Alves Marques et al, FCA-Ed.Inf, 2009 Unix System Programming, K. Haviland, D. Gray, B. Salama, Addison-Wesley, 2 nd ed., 1999 The C Programming Language, B.W. Kernighan, D.M. Ritchie, Prentice-Hall, 2 nd ed., 1988 Notas das Aulas Teóricas, jcc, DI/FCT/UNL (cobrem toda a matéria dada; acessíveis na página Web junto dos sumários das aulas) Notas das Aulas Práticas, (apoiam os trabalhos práticos; acessíveis na página Web) 9/15/2009 FSO - 09/10 12
Apoio à cadeira - complementar Informação on-line a partir de: http://asc.di.fct.unl.pt/~jcc/fso-09-10 Complementares: Operating System Concepts, Silberschatz, P. Galgin, Gagne, 8th. edition, 2009, J. Wiley&Sons Principles of Concurrent and Distributed Programming, M- Ben-Ari, Prentice-Hall, 2 nd edition, 2006 Slides, apontamentos, manuais... 09-09-07 9/15/2009 FSO - 09/10 07/08 13
Avaliação Práticas laboratoriais: realização de 5 trabalhos, grupos 2 alunos nota NP média de notas dos trabalhos práticos Frequência para obter Nota Final na disciplina: NP >= 9.5 Frequência obtida no ano 2008/2009: - mantém-se para este ano (sem a nota NP) - sem inscrição nos turnos - se quiserem, podem fazer os trabalhos 9/15/2009 FSO - 09/10 14
Avaliação Nota Final = 0.85*NT + 0.15*NP NT: 2 Testes ou Exame final: Se faz Testes: NT = média aritmética dos testes Se Nota Final >= 9.5 após os testes: Dispensa de exame Pode vir a exame, mas nesse caso NT = Nota do Exame Se não dispensou pelos testes, faz o exame: Datas dos testes: NT = Nota do Exame T1: 28 Outubro, T2: 16 Dezembro 9/15/2009 FSO - 09/10 15
SO, numa série de figuras... 9/15/2009 FSO - 09/10 16
Arquitectura de Computadores... 9/15/2009 FSO - 09/10 17
9/15/2009 FSO - 09/10 18
9/15/2009 FSO - 09/10 19
9/15/2009 FSO - 09/10 20
9/15/2009 FSO - 09/10 21
Multiprocessadores 9/15/2009 FSO - 09/10 22
9/15/2009 FSO - 09/10 23
Redes de Computadores 9/15/2009 FSO - 09/10 24
O Sistema de Operação visto como... Gestor de Recursos Gere e permite a partilha do hardware pelos processos Gere a execução dos programas e as suas interacções Garante a protecção e a consistência no acesso aos recursos (processamento, memória, comunicação) Máquina Virtual Oferece abstracções de mais fácil utilização Oferece operações de mais "alto nível" que suportam o resto do sistema e que são chamadas pelos programas utilizadores 9/15/2009 FSO - 09/10 25
Principais grupos de operações Controlo da execução de programas Iniciar, gerir a memória, detectar erros, terminar, etc.. Os processos Operações de entrada/saída de dados (ou I/O) e arquivo Comunicar com os periféricos... O acesso à informação em disco Os canais de comunicação e os ficheiros Concorrência entre processos Os problemas de escalonamento e de sincronização Múltiplas aplicações e utilizadores Comunicação entre processos concorrentes A transmissão de informação (mensagens) O acesso à informação partilhada 9/15/2009 FSO - 09/10 26
SO Application Programs Application Programs User Mode Kernel Mode OS Hardware 9/15/2009 FSO 27
Núcleo do SO O Núcleo suporta mecanismos básicos para controlo da execução dos programas e comunicação com o exterior (outros processos e dispositivos periféricos), programas que se executam em modo privilegiado capaz de controlar o hardware (CPU, M, periféricos) Sobre o Núcleo, os programas (em modo utilizador) fazem pedidos ao SO, por invocação de chamadas ao sistema (System Calls) 9/15/2009 FSO - 09/10 28
9/15/2009 FSO - 09/10 29
9/15/2009 FSO 30
Níveis de software Visão de uma aplicação Modo utilizador (executa num processo) Modo supervisor programa bibliotecas API do SO Núcleo do SO device drivers Chamada ao sistema hardware 9/15/2009 FSO 31
Chamadas ao sistema (I/O) Exemplo de saída de dados Programa C libc API do SO Núcleo (kernel) printf( ) write( ) rot-int do_write device drivers int SYSCALL Buffer com os dados a escrever hardware 9/15/2009 FSO 32
9/15/2009 FSO - 09/10 33
SO: organização interna... 9/15/2009 FSO - 09/10 34
SO Application Programs Application Programs User Mode System Services Kernel Mode Hardware Ex: MS-DOS 9/15/2009 FSO 35
SO: camadas internas Application Programs System Services Application Programs User Mode Kernel Mode Memory & I/O Device Mgmt Process Schedule Hardware Cada camada acede a uma interface de mais baixo nível Ex : UNIX 9/15/2009 FSO 36
Núcleo do SO + Serviços No Núcleo: só as funcionalidades básicas essenciais As outras: suportadas sob a forma de Serviços, executados por processos (em modo utilizador). 9/15/2009 FSO - 09/10 37
Tendência para SO mais flexíveis Application Programs Servidores Application Programs User Mode Kernel Mode Micro-núcleo Hardware 9/15/2009 FSO 38
SO = núcleo mínimo + serviços Client Application Thread lib. File Server Network Server Display Server User Kernel Send Reply Microkernel Hardware Tiny OS kernel providing basic primitives (process, memory, communication) Traditional services become subsystems OS = Microkernel + User Subsystems 9/15/2009 FSO 39
Perspectiva do Utilizador... 9/15/2009 FSO - 09/10 40
9/15/2009 FSO - 09/10 41
Interpretador de comandos 9/15/2009 FSO 42
O Sistema de Ficheiros... 9/15/2009 FSO - 09/10 43
9/15/2009 FSO - 09/10 44
9/15/2009 FSO - 09/10 45
Controlo dos programas... Processo = unidade de gestão criada pelo SO para controlar a execução de cada programa 9/15/2009 FSO - 09/10 46
9/15/2009 FSO - 09/10 47
Ciclo de vida de um processo 9/15/2009 FSO 48
Máquina virtual de cada processo 9/15/2009 FSO 49
9/15/2009 FSO - 09/10 50
9/15/2009 FSO - 09/10 51
9/15/2009 FSO - 09/10 52
9/15/2009 FSO - 09/10 53
Multiprogramação Exemplo: 4 processos concorrem por 1 CPU Se um processo espera por I/O ou termina, o SO atribui o CPU a outro processo prog.a prog.b Realmente em execução prog.c prog.d Processo 1 Processo 2 Processo 3 Processo 4 S.O. escalonador CPU temporizador 9/15/2009 FSO 54
9/15/2009 FSO - 09/10 55