350 likes | 571 Views
Sistema Operacional Introdução. WebDesign Redes de Computadores Aula 08. Introdução. Um sistema operacional é um programa que: Atua como intermediário entre o hardware e o usuário; Gerencia o hardware do computador; Oferece uma base para os programas aplicativos;
E N D
Sistema OperacionalIntrodução WebDesign Redes de Computadores Aula 08
Introdução • Um sistema operacional é um programa que: • Atua como intermediário entre o hardware e o usuário; • Gerencia o hardware do computador; • Oferece uma base para os programas aplicativos; • A finalidade do SO é prover um ambiente no qual o usuário possa executar programas de forma conveniente(facilidade de uso) e eficiente.
Objetivos de um Sistema Operacional • Fornecer ao programador/usuário uma forma mais conveniente para a operação do computador • – Esconde complexidade e detalhes internos inerentes à manipulação e controle dos componentes de hardware. • – Reduz tempo de preparação de um programa. • – Permite várias aplicações trabalharem simultaneamente • Utilizar o Hardware e demais recursos de um computador de forma eficiente • – Potencial maior de utilização de recursos em decorrência da implementação de boas políticas de distribuição de recursos
E afinal o que é um sistema operacional ? •Uma máquina virtual – Esconde aspectos de Hardware de modo a facilitar a vida do programador, apresentando uma interface simplificada • A interface do usuário não corresponde ao hardware existente. • Um Gerente/Alocador de Recursos – Decide que pedidos devem ser atendidos de modo que o sistema possa trabalhar de forma eficiente • Um Programa de Controle – Controla a execução de programas do usuário para evitar erros e inconsistência.
Sistemas em Lote (batch) – 1955-1965 Uma máquina era usada para gravar as várias tarefas (jobs) em fita magnética. Outras máquinas eram usadas para realizar a computação a partir dessas fitas. Um programa (S.O.) lia os jobs, executava e guardava o resultado numa fita magnética até que todos os jobs fossem processados. As fitas com resultados dos processamentos eram impressas. Revisão Histórica dos SO
E/S livre CPU Sistema monoprogramável tempo • Sistemas em Lote (batch) – 1955-1965 • Sistemas monoprogramáveis • Somente um programa (job) pode estar em execução por vez; • Os recursos computacionais (processador, memória e dispositivos de E/S), são utilizados de forma pouco eficiente; • O processador é subutilizado permanecendo livre grande parte do tempo • Ex. Acesso a um dispositio de I/O em um sistema monoprogramável
Sistemas em Lote (batch) – 1965-1980 • Surgimento da técnica de multiprogramação • Sistemas multiprogramáveis • Vários programas estão armazenados na memória e concorrem pela utilização do processador. • Quando um programa solicita uma operação de E/S outros programas poderão utilizar o processador. • A CPU permanece menos tempo ociosa e a memória é utilizada de forma mais eficiente E/S 1 1 2 1 CPU Sistema multiprogramável tempo
Sistemas em Lote multiprogramáveis JOB 1 • Nos sistemas multiprogramáveis a memória é particionada e completamente utilizada com as tarefas (jobs) a serem processados. • Não há desperdício dos recursos memória e processador. JOB 2 Partições de memória JOB 3 Sistema Operacional
Variante da multiprogramação que permite a interação do usuário com o sistema de computação; Divisão do tempo de processamento entre os vários usuários; Requer tempo de resposta curto; São mais complexos que os sistemas operacionais multiprogramados; A idéia básica surgiu com o Sistema Multics (sistema de computação e informação multiplexada) desenvolvido pelos laboratórios Bells e a General Electric. Antecessor do sistema UNIX – MULTICS monousuário Sistemas de tempo compartilhado (Time Sharing)
Os computadores pessoais (PCs) apareceram nos anos 70. Os sistemas nessa época eram baseados em linhas de comando (MS-DOS). Steve Jobs criou o Apple Macintosh A Microsoft desenvolveu o Windows ainda executado em cima do DOS. Os sistemas foram evoluindo (Windows 95, 98, NT,...) Sistemas de Computadores pessoais
Ativação do sistema • Quando o computador é ligado não há sistema operacional carregado na memória da máquina. • Em geral o sistema operacional reside em um disco rígido, podendo também estar armazenado em um CD ou DVD. • Os componentes do sistema devem ser carregados para a memória principal toda vez que o computador é ligado por intermédio de um procedimento denominado ativação do sistema ou boot.
Procedimento de boot • A ativação do SO inicia com a execução de um programa chamado bootloader, que se localiza em uma memória ROM da máquina. • O bootloader chama a execução de um outro programa que identifica possíveis problemas no hardware. • Após esta fase, o procedimento de ativação verifica se há no sistema computacional algum dispositivo de armazenamento, onde há um sistema operacional residente. • Se o SO for encontrado, este é carregado para a memória principal .
boot Procedimento de boot Ativação do sistema
Processos Memória Arquivos Conceitos sobre sistemas operacionais
Processos • Um programa é um conjunto de instruções executadas na CPU. • Um programa em execução pode ser considerado um processo. • Um programa de processamento de textos executado por um usuário em um PC é um processo. • Uma tarefa de envio de dados para a impressora é um processo.
Processos • Um processo precisa de recursos (tempo de CPU, memória, arquivos e dispositivos de I/O) para realizar sua tarefa; • Associado a cada processo está o espaço de endereçamento, uma lista de posições de memória que o processo pode ler e escrever. • O espaço de endereçamento contém o programa executável, os dados do programa, os registradores de hardware e as demais informações necessárias à execução do programa.
Quando um processo é suspenso temporariamente, ele deverá ser iniciado mais tarde do mesmo ponto em que estava quando foi interrompido. Todas as informações referentes ao processo devem ser salvas. As informações são salvas em uma tabela denominada tabela de processo. Assim um processo é constituído pelo espaço de endereçamento e por sua entrada na tabela de processo. Processos
Processos • O sistema operacional é responsável pelas seguintes atividades: • Criar e remover os processos de usuário e de sistema; • Suspender e retornar os processos; • Prover mecanismos para o sincronismo de processos; • Prover mecanismos para a comunicação entre processos; • Prover mecanismos para o tratamento de deadlock;
Memória • A memória tem um papel fundamental na operação de um computador moderno. • Para melhor utilizar a CPU e a velocidade de resposta do computador, vários programas são mantidos na memória. • Desta forma, cria-se a necessidade de um gerenciamento de memória.
Memória • O sistema operacional é responsável pelas seguintes atividades referentes ao gerenciamento de memória: • Registrar quais partes da memória estão sendo utilizadas atualmente e por quem. • Decidir quais processos devem ser carregados para a memória quando o espaço de memória se tornar disponível. • Alocar e desalocar espaço de memória conforme a necessidade. • Proteger o espaço de endereçamento dos processos • Implementar a técnica de memória virtual
Arquivos • Os computadores armazenam informações por diversos meios físicos (disco magnético, fitas magnéticas, discos óticos), cada um com suas características e organização física. • O sistema operacional oferece uma visão lógica do armazenamento de informações – os arquivos. • Um arquivo é uma coleção de informações relacionadas. • Os arquivos são organizados em diretórios para facilitar o uso.
Arquivos • O sistema operacional é responsável por: • Criação e remoção de arquivos. • Criação e remoção de diretórios. • Manipulação de arquivos e diretórios. • Mapeamento de arquivos em armazenamento secundário.
Entrada e saída • Uma das funções do SO é ocultar do usuário as peculiaridades dos dispositivos de hardware. • As peculiaridades dos dispositivos de entrada e saída são ocultadas através do subsistema de entrada e saída. • O subsistema de entrada e saída consiste em: • Um componente de gerenciamento de memória. • Uma interface controladora de dispositivos. • Drivers para dispositivos de hardware.
Armazenamento secundário • Os discos são o principal meio de armazenamento de programas e dados. • Os programas são armazenados em disco até que sejam carregados para a memória. • O gerenciamento correto do armazenamento em disco é de importância vital para o computador.
Armazenamento secundário • O sistema operacional é responsável por: • Gerenciar o espaço livre; • Alocação de armazenamento;
Proteção • O computador pode possuir diversos usuários e permitir a execução de diversos processos, então esses processos precisam ser protegidos um do outro. • Os arquivos, segmentos de memória, CPU e outros recursos são operados somente pelos processos que tiverem autorização do sistema operacional. • A proteção é o mecanismo que controla o acesso dos programas, processos ou usuários aos recursos definidos por um sistema computadorizado.
O kernel • O sistema operacional é formado por um conjunto de rotinas que oferecem serviços aos usuários e às suas aplicações. • O conjunto de rotinas é chamado núcleo do sistema, oukernel.
O kernel • As principais funções do núcleo são: • Tratamento de interrupção ou exceção; • Criação e eliminação de processos; • Sincronização e comunicação entre processos; • Escalonamento de processos; • Gerencia de memória; • Gerencia do sistema de arquivos; • Gerencia de dispositivos de entrada e saída ...
Rotinas do SO • As rotinas do sistema operacional compõem o núcleo(kernel) do sistema, oferecendo serviços aos usuários e aplicações. • Existem instruções privilegiadas que só podem ser executadas pelo kernel e não por uma aplicação comum. • Ex. Uma aplicação que atualize um arquivo em disco não deve especificar as instruções que acessam seus dados no disco. Como o disco é um recurso compartilhado, sua utilização deverá ser gerenciada unicamente pelo sistema operacional.
Rotinas do SO • Os processadores, em geral, possuem dois modos de acesso: • Modo usuário e modo kernel. • Com o processador trabalhando no modo usuário, uma aplicação só pode executar instruções não privilegiadas. • Com o processador trabalhando no modo kernel, uma aplicação pode ter acesso ao conjunto total de instruções do processador.
System calls • Todo controle de execução das rotinas é executada pelo mecanismo conhecido como system call. • Toda vez que uma aplicação desejar chamar uma rotina do sistema operacional, o mecanismo de system call é ativado. • O sistema operacional verificará se a aplicação possui privilégios para executar a rotina desejada. • Em caso negativo o sistema operacional impedirá o desvio para a rotina do sistema, sinalizando ao programa que a operação não é possível. • Este é um mecanismo de proteção por software.
System calls • Se a aplicação possuir privilégios para executar a rotina desejada: • O sistema operacional salva o conteúdo corrente dos registradores, troca o modo de acesso do processador de usuário para kernel e vai executar a rotina do sistema operacional.
System call Chamada a uma rotina do SO
System calls • Exemplo: • Para um programa atualizar um arquivo em disco, a aplicação deve solicitar a operação de E/S ao sistema operacional por meio de uma chamada a uma rotina do sistema. O mecanismo de system call verificará se a aplicação possui privilégio para a operação e, em caso afirmativo, irá alterar o modo de acesso do processador de usuário para kernel. Após executar a rotina de escrita em disco, o modo de acesso volta ao estado usuário para continuar a execução do programa.