Hardware e Software das TI



Documentos relacionados
Componentes de um Sistema de Operação

Introdução aos Sistemas Operativos

Introdução aos Sistemas

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Processos e Threads (partes I e II)

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / Gestor de Processos

Componentes de um sistema computacional moderno. DCC/FCUP Inês Dutra Sistemas de Operação 1

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Gestor de Processos. Gestor de Processos

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux

7 Processos. 7.1 Introdução

Componentes de um Sistema de Operação

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operativos. Funções genéricas de um S.O.

Processamento com SPOOL. Utilização do CPU e periféricos. Perfis dos programas. Exemplo IBM 1460 (1963) Problemas no escalonamento.

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Gestor de Processos Núcleo do Sistema Operativo

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Programação de Sistemas

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

2. Introdução aos Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

Sistemas Operacionais. Prof. André Y. Kusumoto

Introdução à Arquitetura de Computadores

Dispositivos de Entrada e Saída

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2012 / Gestor de Processos

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

BARRAMENTO DO SISTEMA

Sistemas Operativos I

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

UFRJ IM - DCC. Sistemas Operacionais I

Organização de Computadores 1

Sistemas Operacionais

Grupo I [4v] executaprograma();

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Introdução aos Computadores

Sistemas Operacionais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Sistemas Operacionais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Processos. Adão de Melo Neto

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Sistemas Operacionais

Capítulo 8. Software de Sistema

Sistemas Operacionais

Sistemas Operacionais Processos e Threads

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Organização e Arquitetura de Computadores

Introdução à Computação: Sistemas Operacionais II

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Curso Técnico de Informática de Sistemas

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Estruturas do Sistema de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Escola Secundária de Emídio Navarro

Infra-Estrutura de Software. Introdução. (cont.)

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Sistemas Operativos I

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Everson Scherrer Borges João Paulo de Brito Gonçalves

Programação Concorrente Processos e Threads

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Escola Secundária de Emídio Navarro

ENTRADA E SAÍDA DE DADOS

Figura 1 - O computador

Sistemas Operacionais Gerência de Dispositivos

Arquitetura de um Computador

Fundamentos de Sistemas Computacionais Introdução

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Arquitetura de Sistemas Operacionais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Transcrição:

Licenciatura em Gestão de Informação / Sistemas e Tecnologias de Informação Hardware e Software das TI Prof. Victor Lobo Prof. Roberto Henriques Hardware e Software das TI Sistemas Operativos 2

Sistema Operativo Programa que corre no hardware em modo kernel e suporta: 1. Abstracção dos recursos (Criação de uma máquina virtual) 2. Partilha de recursos (Gestão de recursos) Permite uma abstracção e standardização da interface para o utilizador para diferentes tipos de hardware Máquina virtual esconde os detalhes do hardware Gestão dos recursos de hardware Cada programa recebe tempo de execução 3 INTRODUÇÃO FUNÇÕES DO SISTEMA OPERATIVO Gestão de recursos Criação de uma máquina virtual Sistema Operativo Hardware DIFERENÇAS ENTRE UMA MÁQUINA VIRTUAL E UMA MÁQ. REAL Input / Output Memória Sistema de ficheiros Protecção e tratamento de erros Interacção de programas Controlo de programas 4

Sistemas Operativos Babagge e a máquina analítica (1871) 1ª geração : 1945 1955 Tubos de vácuo Plug boards 2ª geração: 1955 1965 Transistores Sistemas Batch 3ª geração : 1965 1980 Circuitos integrados Multiprogramming 4ª geração : 1980 present PCs E a seguir 5 História dos S.O. Monitores de controlo Permitem o arranque do sistema, carregar programas, usar rotinas de I/O, eventualmente têm um interpretador. Sistemas Batch Permitem carregar automaticamente o JOB seguinte, têm um controlo elementar da memória e dos processos. Sistemas Multiprogramados Permitem vários processos concorrentes. Sistemas Interactivos Permitem diálogo homem-máquina durante a execução. Sistemas de Memória Virtual Gestão flexível da memória Sistemas Distribuídos Gerem várias máquinas 6

1ª geração : input directo Um processo de cada vez Introduzir código no computador Execução Gravação dos resultados Muito tempo de computador perdido! 1º e último passo Computadores muito caros 7 2º geração: sistemas batch Levar cartão para o 1401 Ler cartões para fita Colocar fita no 7094 Executar e escrever resultados noutra fita Colocar essa fita no 1401, para impressão do resultado 8

Estrutura de um job (tarefa) da 2ª geração Data for program $END FORTRAN program $RUN $LOAD $FORTRAN $JOB, 10,6610802, ETHAN MILLER 9 Spooling Inicialmente sistemas batch usavam fitas Mais tarde passaram a usar discos Spooling (Simultaneous Peripheral Operation Online) colocação de dados numa área de trabalho temporária onde outro programa possa aceder para processar no futuro. Esta técnica consiste na colocação de jobs numa área da memória ou de um disco (buffer). Assim, o operator carrega os cartões para um disco ligado ao computador Computador lê jobs do disco, executa-os e escreve resultado para disco Apenas 1 job de cada vez 10

3ª geração: multiprogramação Várias tarefas em memória (em zonas separadas) Enquanto uma tarefa espera pelo processo de I/O outro job pode usar o CPU Se existir memória suficiente, o CPU tem sempre tarefas para executar Memória Job 3 Job 2 Job 1 Sistema Operativo 11 Tipos de Sistemas operativos TIPOS DE SISTEMAS OPERATIVOS Mono-utilizador (por ex. MS-DOS) Controlo de processos (na industria, por ex.rtos) Interrogação de ficheiros (base de dados) Processamento de transações (bancos,com.seg.) Uso geral (por ex. UNIX, VAX-VMS, OS/400 ) SISTEMA DE USO GERAL Sistema operativo que tenta servir para tudo e a todos. Características: Suporte de BATCH CONCORRENTE MULTI-ACESSO INTERACTIVO 12

Arquitectura Para o utilizador É necessário um interpretador de comandos. Para as aplicações É necessário uma biblioteca de funções do sistema operativo Utilizador Aplicações Interface c/utilizador Interface c/ Aplicações Sistema de Ficheiros Comunicação e I/O Gestão de memória Gestão de Processos Hardware 13 Principais problemas Concorrência Decidir que programa deverá executar (SCHEDULING) Evitar starvation de processos Dar temos de resposta aceitáveis Sincronizar os programas que têm necessidade disso Um S.O. é um sistema não determinístico! Partilha de recursos Partilha de CPU, memória, periféricos Evitar que um programa interfira nos outros Decidir que informação ter em memória central, e qual deverá ser passada para disco Armazenamento a longo prazo Sistema de ficheiros em disco 14

CONCEITOS BÁSICOS PROGRAMA Sequência de comandos sem actividade própria. PROCESSO Em primeira aproximação é um programa a correr Pode-se chamar também tarefa Um processo pode envolver a execução de mais de um programa, inversamente, um determinado programa pode estar envolvido em mais de um processo É algo dinâmico, que existe num período limitado no tempo, enquanto um programa é algo estático que tem uma existência ilimitada PROCESSADOR É um órgão material que executa uma acção definida numa instrução máquina. 15 Estados de um processo 1.processo bloqueia à espera de input 2.SO (scheduler) escolhe outro processo 3.SO (scheduler) escolhe este processo 4.Input fica disponivel Execução 1 2 Bloqueado 3 Àespera 4 16

Estados de um processo 17 Processos Processo: programa em execução Espaço em memória (memória que pode ser usada pelo programa) Estado do processo (registos, program counter e stack pointer) Sistema operativo guarda esta informação de todos os processos (process table) Um processo pode criar outro processo Processo A criou 3 processos filho: B,C e D C criou 2 processos filho: E and F 18

CONCEITOS BÁSICOS COMUNICAÇÃO ENTRE PROCESSOS Os processos no interior do sistema não actuam isoladamente, devem cooperar: troca de mensagens e memória partilhada EXCLUSÃO MÚTUA Os recursos podem ser classificados em: Partilháveis Não partilháveis Para os recursos não partilháveis, quando um processo o usa, é necessário excluir os outros SINCRONIZAÇÃO A velocidade de um processo em relação a outro é imprevisível, visto que depende das interrupções e do tempo de processador que o sistema operativo atribui a cada processo. A certa altura é necessário que haja sincronização. 19 Threads Também chamados de processo leves... múltiplos fluxos de execução no mesmo processo mecanismo para criar fluxos de execução, partilhando um contexto comum Processo tem um thread de controlo e o seu espaço de memória Multi-threading existem num processo vários threads 20

Threads: exemplo Processo de servidor de ficheiros: Recebe pedidos para ler ou escrever ficheiros e devolve o ficheiro ou aceita a edição Quando chega pedido é enviado para um thread Se esse thread ficar bloqueado à espera de informação do disco: Outras threads estão disponíveis Pedido Pedido Disco I/O 21 GESTÃO DE PROCESSOS Atribuição de time-slices aos processos A B A B A Existem vários critérios de atribuição de recursos Execução paralela é mais eficiente (1+1<2) Cada processo pode demorar mais tempo O desempenho global é melhor Existe uma ocupação de recursos que nunca é perfeita CPU Disco 22

Time sharing SO reparte o tempo de CPU pelos vários programas prontos a executar - cria a ilusão que o computador está permanentemente disponível 23 GESTÃO DE PROCESSOS Métodos para interromper os processos Métodos cooperativos - após lhe ser atribuído o CPU, nunca mais lhe é retirado Métodos preemptivos - desafectação forçada, o processo deixa de estar activo Níveis de privilégios diferentes para o sistema operativo e para os processos CPUs de concepção moderna suportam pelo menos 2 níveis de privilégio: user level - nível de execução da generalidade das aplicações: não permite aceder ao kernel space não permite executar certas instruções do CPU kernel level - nível de execução do SO - sem restrições 24

GESTÃO DE PROCESSOS Informação associada aos processos - CONTEXTO Registos internos do processador Importância de um stack próprio Memória e recursos associados ao processo Outras informações Tempo de CPU gasto Estado do processo (espera por um recurso) PID PID = = 3 2 Registos: PID =1 AX=0320,BX=. Registos: Memória: AX=0320,BX=. Registos: 0f00-02000 Memória: AX=0320,BX=. Recursos 0f00-02000 Memória: /dev/ Recursos 0f00-02000 /dev/ Recursos /dev/ MINIX process table 25 Partilha de recursos Por vezes os processos podem partilhar um local de armazenamento comum (memória central ou ficheiro) onde podem escrever e ler Exemplo: impressora e print spooler 1. Para imprimir ficheiro, processo envia nome para spooler directory 2.Existem 2 variáveis partilhadas in e out 1. slot seguinte vazia 2. próximo ficheiro a ser impresso 3.Processo A e B enviam ficheiro para impressão ao mesmo tempo Processo A lê in (7) Sinal de clock muda o processo para B Processo B lê in (7) e incrementa (8) Processo A é novamente chamado e escreve no slot 7 26

Secções críticas Para garantir a coerência dos dados é necessário que os processos acedam ordenadamente aos recursos SINCRONIZAÇÃO Sempre que se testam ou se modificam estrutura de dados partilhadas Deve ser feito dentro de uma secção crítica: -parte do programa que acede a recursos partilhados Garantir que 2 processos não estão na sua secção critica ao mesmo tempo 27 SINCRONIZAÇÃO Sincronização é necessária para: Exclusão mútua Cooperação Acesso a variáveis Sincronização com espera activa while( not(flag1) ) sw lock(flag1) sw+hw Lock(f1) Unlock(f1) Lock(f1) Lock(f1) Lock(f1) Lock(f1) Lock(f1) Lock(f1) Sincronização com espera passiva O processo suspende a sua execução Unlock(f1) 28

SEMÁFOROS Servem para garantir exclusão mútua e sincronizar processos Semáforo variável int para constar o nº de wakeups valor 0- nº wakeups guardados valor n- n wakeups guardados Wait(f1) Signal(f1) Wait(f1) Signal(f1) 29 SEMÁFOROS Um processo só entra numa ZONA CRÍTICA se tiver semáforo verde Ao entrar na ZONA CRÍTICA o processo levanta um semáforo vermelho Os semáforos podem permitir mais do que um processo na ZONA CRÍTICA, ou seja podem ser semáforos numerados Um semáforo é constituído por uma variável de controlo, uma função de entrada (wait), e uma função de saída (signal) Em honra de Dijkstra, chama-se p e v a essas funções Wait(f1) Wait(f1) Signal(f1) Signal(f1) 30

SEMÁFOROS FUNÇÃO WAIT É a função de entrada numa zona crítica Tem o aspecto Wait(s), em que s é um semáforo. Decrementa o valor de s se este for superior a zero. Se não, o processo fica bloqueado à espera que s torne o valor 1 ou superior. FUNÇÃO SIGNAL Tem o aspecto Signal(s) em que s é um semáforo, isto é, uma variável inteira, positiva ou nula. Esta função incrementa o valor de s (eventualmente desbloqueando um processo que esteja à espera) DEADLOCK (INTER BLOCAGEM) Quando vários processos competem entre si no uso de recursos é possível que ocorra a situação em que nenhum processo possa continuar, porque os recursos que um precisa estão reservados pelo outro e vice-versa. 31 DESPACHO Estados possíveis de um processo Os processos são passados de um estado para outro por um programa dedicado, chamado DISPACHER (ou despacho) Os processos podem estar a EXECUTAR no CPU, podem estar EXECUTÁVEIS, mas em lista de espera para o CPU, ou BLOQUEADOS em semáforos Num sistema mais completo, um processo pode ainda estar suspenso em disco. Cada processo é representado por um descritor que contém toda a informação relevante (conteúdo dos registos do CPU, incluindo PC, SP, Acc, etc, nome do processo, prioridade, estado actual, etc) Dispacher Executar Semáforo fechado Executável Semáforo aberto Bloqueado 32

Gestão de memória Idealmente a memória seria grande, rápida e não volátil Existe hierarquia na memória memória rápida cache - pouca velocidade média - memória principal - 1-4GB memória lenta discos - >200 gigabytes Esta hierarquia é gerida pelo gestor de memória 33 Gestor de memória Disco Faz parte do SO e é responsável pela: 1.Conhecimento das partes da memória estão em uso 2.Alocação da memória aos processos e sua posterior remoção 3.Gestão eficiente da memória - na falta de memória principal fazer swapping com o disco RAM Compactação de memória 34

Gestão de memória Memória virtual A memória virtual é dividida em páginas Page frames -espaço correspondente na memória Ex: 32K de memória física e 64K de memória virtual 16 virtual pages e 8 page frames Relação entre endereços virtuais e físicos é dado por uma tabela 35