Baixe o app para aproveitar ainda mais
Prévia do material em texto
O que é um Sistema Operacional? Um sistema operacional (em inglês: Operating System - OS) ou ainda software de sistema é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, prover segurança de acesso, etc.), fornecendo uma interface entre o computador e o usuário. Embora possa ser executado imediatamente após a máquina ser ligada, a maioria dos computadores pessoais de hoje o executa através de outro programa armazenado em uma memória não-volátil ROM chamado BIOS num processo chamado "bootstrapping", conceito em inglês usado para designar processos auto-sustentáveis, ou seja, capazes de prosseguirem sem ajuda externa. Após executar testes e iniciar os componentes da máquina (monitores, discos, etc), o BIOS procura pelo sistema operacional em alguma unidade de armazenamento, geralmente o Disco Rígido, e a partir daí, o sistema operacional "toma" o controle da máquina. Componentes de um Sistema Operacional Básicos: Interface com Usuário, Gerência de Processador, Gerência de Memória, Gerência de Dispositivos e Sistemas de Arquivos Avançados: Segurança de Acesso e Ferramenta de Auditoria. Onde Existem Sistemas Operacionais? Mainframes Desktops Sistemas Multiprocessados Sistemas Distribuídos Sistemas Agrupados / Agregados (Clusters) Sistemas de Tempo Real Sistemas Pessoais (PADs, Tablets, Smartphones) Sistemas embutidos (ou embarcados) – Roteadores, Componentes de Carros, geladeiras, aviões etc.... Sistemas Operacionais na Nuvem Definição de S.O. como Máquina Virtual A arquitetura de um computador (conjunto de instruções, organização da memória, estrutura de Entrada/Saída (E/S) e estrutura de barramento) é bastante primitiva e difícil de programar, em especial a parte de entrada e saída. Fica claro que a maioria dos programadores não quer ou não pode envolver-se com detalhes da programação. Torna-se evidente, então, que o programador deseja lidar com uma abstração de alto nível e, conseqüentemente, bastante simples. No caso dos discos, uma abstração típica poderia fazer com que o disco fosse visto como uma coleção de arquivos identificados por nomes. Cada arquivo deve ser aberto para leitura ou escrita, em seguida deve ser lido ou escrito, e finalmente deve ser fechado. Detalhes a respeito do processo de gravação ou a respeito do estado da corrente do motor da controladora, não devem aparecer na abstração apresentada ao usuário. O programa que esconde o verdadeiro hardware do usuário e apresenta-lhe um esquema simples de arquivos identificados que podem ser lidos ou escritos é, naturalmente, o Sistema Operacional. Da mesma forma que o Sistema Operacional isola o usuário dos detalhes da operação do disco, fornecendo-lhe uma interface bastante simples, ele também trata de uma série de outras questões de nível bastante baixo, tais como interrupções, os temporizadores, a gerência da memória e CPU, além de várias outras questões relacionadas ao uso do hardware. Em cada caso, a abstração apresentada ao usuário do SO é mais simples e mais fácil de utilizar que o próprio hardware. O SO tornou a interação entre usuários e computador mais simples, confiável e eficiente, eliminando a necessidade do programador se envolver com a complexidade do hardware para poder trabalhar, ou seja, a parte física do computador tornou-se transparente para o usuário. Definição de S.O. como Gerenciador de Recursos O conceito de Sistema Operacional como fornecedor de uma interface conveniente a seus usuários é uma visão top-down. Uma visão alternativa, bottom-up, mostra o SO como um gerente dos recursos de hardware disponíveis na máquina. Os computadores modernos são compostos de processadores, memórias, temporizadores, discos, dispositivos de fita magnética, interface de rede e dispositivos de E/S, tais como scanners, câmeras digitais e impressoras. Na visão alternativa, a função do Sistema Operacional é a de fornecer um esquema de alocação dos processadores, das memórias e dos dispositivos de Entrada/Saída entre os vários processos que competem pela utilização de tais recursos. Imagine o que poderia acontecer se três processos, executando em um dado computador, resolvessem imprimir suas saídas simultaneamente na mesma impressora. No caso do computador possuir múltiplos usuários, a necessidade de gerência e proteção da memória, dos dispositivos de Entrada/Saída e dos demais recursos do sistema fica ainda mais aparente. Tal necessidade vem do fato de ser freqüentemente necessário aos usuários fazer o compartilhamento de recursos relativamente caros, como é o caso das impressoras a laser. Classificação dos Sistemas Operacionais Monotarefa x Multitarefa. Monousuário ou Multiusuário. Monoprocessado x Multiprocessado. On-line ou Batch (capacidade de interação com o usuário). Tempo Real (garatir tempo de resposta de uma tarefa). Conceitos Básicos Processos Um conceito chave em todos os Sistemas Operacionais é justamente o processo. Um processo é basicamente um programa em execução. Ele consiste do programa executável, dos dados do programa, do seu contador de programa (PC – Program Counter), de diversos registros e de toda a informação necessária para executar o programa. Diferença entre Programa e Processo Programa (estático e permanente) x Processo (dinâmico e efêmero) Os processos dependem dos programas, dados e contexto Processos (cont..) Abstração que representa um programa em execução Mesmo código (programa) pode gerar processos diferentes (dependendo dos dados e momento da execução). É a forma como o Sistema Operacional enxerga um programa e possibilita sua execução Processos executam programas de usuário e programas do próprio sistema operacional. Threads Um conceito atualmente bastante em voga em sistemas operacionais é o conceito de threads. Esse interesse por threads está associado com o advento de máquinas multiprocessadas e com a facilidade de exprimir atividades concorrentes. Uma thread é usualmente definida como um fluxo de controle no interior de um processo. Basicamente uma thread, que as vezes é chamada de processo leve (lightweight process) é um unidade básica de processamento da CPU. Um processo pode ter vários threads. Arquivos Os computadores podem armazenar informações em diversos meios físicos, tais como discos (magnéticos e óticos), fitas magnéticas e cartões de memória. Para que o sistema de computação seja conveniente o sistema operacional deve fornecer uma visão lógica deste armazenamento. O sistema operacional abstrai das propriedades físicas de seus dispositivos de armazenamento informações para definir uma unidade lógica de armazenamento, o arquivo. Um arquivo é uma coleção de informações correlatas que recebe um nome e é gravado em um meio físico (o armazenamento secundário). Recursos. Um recurso será definido como um objeto que pode ser solicitado para ser usado por um processo. Isto é um recurso pode ser um dispositivo de hardware (disco ou fita), um arquivo, uma parte de uma informação (registro travado em um sistema de Banco de Dados) e etc...
Compartilhar