SSC SISTEMAS OPERACIONAIS I

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais Aula II
Sistemas Operacionais
Arquitetura de Computadores
Noções de Sistemas Operacionais
Sistemas Operacionais
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Sistemas Operacionais de Rede Professor: João Paulo de Brito Gonçalves
Sistemas Operacionais
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Sistemas Operacionais
Processos no Unix e Linux
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Introdução à Informática
Sistemas Operacionais
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
SSC SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória 3
SSC SISTEMAS OPERACIONAIS I
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
SSC SISTEMAS OPERACIONAIS I
Avaliação de Desempenho
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 10 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 4 – Conceitos Básicos
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Sistemas Operacionais
Sistemas Operacionais
Estruturas de Controle
Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
09/03/10 20:13 Claudio de Oliveira – 1/21.
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Sistemas Operacionais
Conteúdo Estrutura do sistema operacional Funções do Kernel
Sistemas Operacionais
O que é Sistema Operacional?
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Arquitetura Cliente /Servidor
Processo Entidade dinâmica e efêmera
Sistemas Operacionais
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Sistemas Operacionais
Sistemas Operacionais
Conceitos e Estrutura do SO
Computação L1: Infra-Estrutura Básica
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas operacionais
Processos.
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
ESTRUTURA DO SISTEMA OPERACIONAL
Infra-Estrutura de Software
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Administração de Sistemas Operacionais 1 -Windows
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner
Capítulo 4 Estrutura do Sistema Operacional
Transcrição da apresentação:

SSC 140 - SISTEMAS OPERACIONAIS I Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC 140 - SISTEMAS OPERACIONAIS I Turmas A e B Aula 3 – Introdução Profa. Sarita Mazzini Bruschi Regina Helena Carlucci Santana Marcos José Santana Slides adaptados de Luciana A. F. Martimiano baseados nos livros Sistemas Operacionais Modernos de A. Tanenbaum e Arquitetura de Sistemas Operacionais de Machado e Maia

Roteiro System Calls Estrutura de Sistemas Operacionais Por que é necessário um sistema operacional O que é um Sistema Operacional Histórico Conceitos Básicos Processo; Memória; Chamadas de Sistema; System Calls Estrutura de Sistemas Operacionais

Interfaces de um Sistema Operacional Usuário – SO: Shell ou Interpretador de comandos Programas – SO: Chamadas ao Sistema

Conceitos Básicos Chamadas de Sistema Modos de Acesso: Modo usuário; Modo kernel ou Supervisor ou Núcleo; São determinados por um conjunto de bits localizados no registrador de status do processador: PSW (program status word); Por meio desse registrador, o hardware verifica se a instrução pode ou não ser executada pela aplicação; Protege o próprio kernel do Sistema Operacional na RAM contra acessos indevidos;

Conceitos Básicos Chamadas de Sistema Modo usuário: Aplicações não têm acesso direto aos recursos da máquina, ou seja, ao hardware; Quando o processador trabalha no modo usuário, a aplicação só pode executar instruções sem privilégios, com um acesso reduzido de instruções; Por que? Para garantir a segurança e a integridade do sistema;

Conceitos Básicos Chamadas de Sistema Modo Kernel: Aplicações têm acesso direto aos recursos da máquina, ou seja, ao hardware; Operações com privilégios; Quando o processador trabalha no modo kernel, a aplicação tem acesso ao conjunto total de instruções; Apenas o SO tem acesso às instruções privilegiadas;

Conceitos Básicos Chamadas de Sistema Se uma aplicação precisa realizar alguma instrução privilegiada, ela realiza uma chamada de sistema (system call), que altera do modo usuário para o modo kernel; Chamadas de sistemas são a porta de entrada para o modo Kernel; São a interface entre os programas do usuário no modo usuário e o Sistema Operacional no modo kernel; As chamadas diferem de SO para SO, no entanto, os conceitos relacionados às chamadas são similares independentemente do SO;

Conceitos Básicos Chamadas de Sistema TRAP: instrução que permite o acesso ao modo kernel; Exemplo: Instrução do UNIX: count = read(fd,buffer,nbytes); Arquivo a ser lido Bytes a serem lidos Ponteiro para o Buffer O programa sempre deve checar o retorno da chamada de sistema para saber se algum erro ocorreu!!!

Chamadas de Sistema Retorno Colocar o código para read no registrador Endereço 0xFFFFFFFFF Retorno Colocar o código para read no registrador TRAP Biblioteca do Procedimento READ 5 10 4 Espaço do Usuário 11 Empilha nbytes Incrementa SP Comando read Empilha fd Empilha &buffer 3 Chamada ao Procedimento READ 2 1 6 9 Tabela de ponteiros para Chamadas Kernel SO 7 8 Dispatch Manipulador de Chamadas Endereço 0

Conceitos Básicos Chamadas de Sistema Exemplos de chamadas de sistema: Chamadas para gerenciamento de processos: Fork (CreateProcess – WIN32) – cria um processo; Chamadas para gerenciamento de diretórios: Mount – monta um diretório; Chamadas para gerenciamento de arquivos: Close (CloseHandle – WIN32) – fechar um arquivo; Outros tipos de chamadas: Chmod: modifica permissões;

Estrutura dos Sistemas Operacionais Principais tipos de estruturas: Monolíticos; Em camadas; Máquinas Virtuais; Arquitetura Micro-kernel; Cliente-Servidor;

Estrutura dos Sistemas Operacionais - Monolítico Todos os módulos do sistema são compilados individualmente e depois ligados uns aos outros em um único arquivo-objeto; O Sistema Operacional é um conjunto de processos que podem interagir entre si a qualquer momento sempre que necessário; Cada processo possui uma interface bem definida com relação aos parâmetros e resultados para facilitar a comunicação com os outros processos; Simples; Primeiros sistemas UNIX e MS-DOS;

Estrutura dos Sistemas Operacionais - Monolítico

Estrutura dos Sistemas Operacionais - Monolítico Os serviços (chamadas) requisitados ao sistema são realizados por meio da colocação de parâmetros em registradores ou pilhas de serviços seguida da execução de uma instrução chamada TRAP;

Estrutura dos Sistemas Operacionais - Monolítico Implementação de uma Chamada de Sistema Procedimentos de Serviço Programa de usuário 2 Programa de usuário 1 Chamada ao sistema (kernel) Memória Principal 1 2 TRAP 3 Tabela de Escalonamento 4 Serviços Programas de usuário rodam em modo usuário SO indexa em uma tabela um ponteiro para o processo responsável pela execução a chamada é concluída e o controle volta ao programa do usuário Rotinas do SO rodam em modo kernel chaveamento da máquina do modo usuário para o modo kernel e transferência do controle para o Sistema Operacional Sistema Operacional examina os parâmetros da chamada para determinar qual procedimento deve ser executado

Estrutura dos Sistemas Operacionais – Em camadas Possui uma hierarquia de níveis; Primeiro sistema em camadas: THE (idealizado por E.W. Dijkstra); Possuía 6 camadas, cada qual com uma função diferente; Sistema em batch simples; Vantagem: isolar as funções do sistema operacional, facilitando manutenção e depuração Desvantagem: cada nova camada implica uma mudança no modo de acesso Atualmente: modelo de 2 camadas

Estrutura dos Sistemas Operacionais – Em camadas Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Nível 0 Fornecimento de Serviços

Estrutura dos Sistemas Operacionais – Em camadas Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Nível 0 Alocação do processador; Chaveamento entre os processos em execução – multiprogramação;

Estrutura dos Sistemas Operacionais – Em camadas Gerenciamento da memória; Alocação de espaço para processos na memória e no disco: Processo dividido em partes (páginas) para ficarem no disco; Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Nível 0

Estrutura dos Sistemas Operacionais – Em camadas Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Nível 0 Comunicação entre os processos;

Estrutura dos Sistemas Operacionais – Em camadas Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Nível 0 Gerenciamento dos dispositivos de entrada/saída – armazenamento de informações de/para tais dispositivos;

Estrutura dos Sistemas Operacionais – Em camadas Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Nível 0 Programas dos usuários; Alto nível de abstração;

Estrutura dos Sistemas Operacionais – Em camadas Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Nível 0 Processo do operador do sistema;

Estrutura dos Sistemas Operacionais – Máquina Virtual Idéia em 1960 com a IBM  VM/370; Modelo de máquina virtual cria um nível intermediário entre o SO e o Hardware; Esse nível cria diversas máquinas virtuais independentes e isoladas, onde cada máquina oferece um cópia virtual do hardware, incluindo modos de acesso, interrupções, dispositivos de E/S, etc.; Cada máquina virtual pode ter seu próprio SO;

Estrutura dos Sistemas Operacionais – Máquina Virtual Evolução do OS/360 para o TSS/360: Compartilhamento de tempo (TimeSharing); Tanto a multiprogramação quanto a interface com o hardware eram realizadas pelo mesmo processo – sobrecarga gerando alto custo; Surge o CP/CMS  VM/370 (Mainframes IBM) Duas funções distintas em processos distintos: Ambiente para multiprogramação; Máquina estendida com interface para o hardware;

Estrutura dos Sistemas Operacionais – Máquina Virtual Principais conceitos: Monitor da Máquina Virtual (VMM): roda sobre o hardware e implementa multiprogramação fornecendo várias máquinas virtuais  é o coração do sistema; CMS (Conversational Monitor System): TimeSharing; Executa chamadas ao Sistema Operacional; Máquinas virtuais são cópias do hardware, incluindo os modos kernel e usuário; Cada máquina pode rodar um Sistema Operacional diferente;

Estrutura dos Sistemas Operacionais – Máquina Virtual Hardware (VMM) VM/370 CMS Cópias virtuais do 370s TRAP Chamadas ao sistema TimeSharing; Chamadas ao Sistema Instruções de E/S Monitor da Máquina Virtual roda sobre o hardware e implementa multiprogramação Cada máquina pode rodar um Sistema Operacional diferente

Estrutura dos Sistemas Operacionais – Máquina Virtual Atualmente, a idéia de máquina virtual é utilizada em contextos diferentes: Programas MS-DOS: rodam em computadores 32bits; As chamadas feitas pelo MS-DOS ao Sistema Operacional são realizadas e monitoradas pelo monitor da máquina virtual (VMM); Virtual 8086; Programas JAVA (Máquina Virtual Java-JVM): o compilador Java produz código para a JVM (bytecode). Esse código é executado pelo interpretador Java: Programas Java rodam em qualquer plataforma, independentemente do Sistema Operacional;

Estrutura dos Sistemas Operacionais – Máquina Virtual Vantagens Flexibilidade; Desvantagem: Simular diversas máquinas virtuais não é uma tarefa simples  sobrecarga;

Estrutura dos Sistemas Operacionais – Baseados em Kernel (núcleo) Kernel é o núcleo do Sistema Operacional Provê um conjunto de funcionalidades e serviços que suportam várias outras funcionalidades do SO O restante do SO é organizado em um conjunto de rotinas não-kernel Interface com usuário Rotinas não kernel Kernel Hardware

Estrutura dos Sistemas Operacionais – Micro-Kernel

Estrutura dos Sistemas Operacionais – Cliente/Servidor Reduzir o Sistema Operacional a um nível mais simples: Kernel: implementa a comunicação entre processos clientes e processos servidores  Núcleo mínimo; Maior parte do Sistema Operacional está implementado como processos de usuários (nível mais alto de abstração); Sistemas Operacionais Modernos;

Estrutura dos Sistemas Operacionais – Cliente/Servidor processo cliente servidor processos terminal .......... arquivos Núcleo (kernel) Cada processo servidor trata de uma tarefa

Estrutura dos Sistemas Operacionais – Cliente/Servidor Os processos servidores não têm acesso direto ao hardware. Assim, se algum problema ocorrer com algum desses servidores, o hardware não é afetado; processo processo servidor servidor servidor .......... cliente cliente processos terminal arquivos Núcleo (kernel)

Estrutura dos Sistemas Operacionais – Cliente/Servidor processo processo servidor servidor servidor .......... cliente cliente processos terminal arquivos Núcleo (kernel) O mesmo não se aplica aos serviços que controlam os dispositivos de E/S, pois essa é uma tarefa difícil de ser realizada no modo usuário devido à limitação de endereçamento. Sendo assim, essa tarefa ainda é feita no kernel.

Estrutura dos Sistemas Operacionais – Cliente/Servidor Adaptável para Sistemas Distribuídos; Cliente Kernel Servidor Rede de Comunicação Mensagem Cliente Servidor 1 2 3 4 Máquina

Tarefa para casa..... Ler capítulo 1 do Tanenbaum Resolver os exercícios ímpares Estudar chamadas ao sistema (Linux) e começar a pensar em como implementar um programa que utilize algumas delas....