Baixe o app para aproveitar ainda mais
Prévia do material em texto
08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 1/12 Sistema operativo Origem: Wikipédia, a enciclopédia livre. Sistema operativo (pt) ou operacional (pt-BR) (em inglês: Operating System - OS) é 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, 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 autosustentá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. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional. Segundo Tanenbaum,[1], pela perspectiva do usuário ou programador, existem dois modos distintos de conceituar um sistema operacional: numa visão de cima para baixo (top-down): é uma abstração do hardware, fazendo o papel de intermediário entre os programas (software) e os componentes físicos do computador (hardware); ou numa visão de baixo para cima (bottom-up): é um gerenciador de recursos, i.e., que controla as aplicações (processos) a executar, como, quando e com quais recursos (memória, disco, periféricos). Um sistema operacional é projetado para ocultar as particularidades de hardware (ditas "de baixo nível") e, com sua atuação, criar uma máquina abstrata que fornece às aplicações serviços compreensíveis ao usuário (ditas "de alto nível")[2]. História Visão geral Sistemas operacionais modernos Estrutura em camada Funcionamento Gerenciamento de processos Gerenciamento de memória Swapping Gerenciamento de recursos Entrada e saída de dados Sistema de arquivos Tipos de sistemas Sistema Mono-programado Índice https://pt.wikipedia.org/wiki/Portugu%C3%AAs_europeu https://pt.wikipedia.org/wiki/Portugu%C3%AAs_brasileiro https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa https://pt.wikipedia.org/wiki/Programa_de_computador https://pt.wikipedia.org/wiki/Unidade_central_de_processamento https://pt.wikipedia.org/wiki/Sistema_de_arquivos https://pt.wikipedia.org/wiki/Interface https://pt.wikipedia.org/wiki/Computador https://pt.wikipedia.org/wiki/Usu%C3%A1rio https://pt.wikipedia.org/wiki/ROM https://pt.wikipedia.org/wiki/BIOS https://pt.wikipedia.org/wiki/Bootstrapping_(estat%C3%ADstica) https://pt.wikipedia.org/wiki/Hardware https://pt.wikipedia.org/wiki/Software https://pt.wikipedia.org/wiki/Processo_(inform%C3%A1tica) https://pt.wikipedia.org/wiki/Hardware 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 2/12 Sistema operacional em linha de comando. Sistema em Lote Sistema multiprocessadores Sistema Multi-programado para Tempo Real Interface de uso Interface de terminal Interface textual Interface gráfica Interface de voz Classificações Em relação ao seu projeto (arquitetura) Quanto ao gerenciamento de processos Quanto à quantidade de usuários concorrentes Exemplos de sistemas operacionais Para desktop/servidores Para dispositivos móveis (tablets e smartphones) Referências Referências bibliográficas Ver também Na primeira geração (aproximadamente 1945-1955), os computadores eram tão grandes que ocupavam salas imensas, ou mesmo andares inteiros. Foram basicamente construídos com válvulas e painéis, e os sistemas operacionais "não existiam". Os programadores, que também eram os operadores, controlavam o computador por meio de chaves, fios e luzes de aviso. Nomes como Howard Aiken (Harvard), John von Neumann (Instituto de Estudos Avançados de Princeton), John Adam Presper Eckert Jr e William Mauchley (Universidade da Pennsylvania) e Konrad Zuse (Alemanha) formaram, com suas contribuições, a base humana para o sucesso na construção dos computadores primitivos. Na geração seguinte (aproximadamente 1955-1965), foram criados os sistemas em lote (batch systems), que permitiram melhor uso dos recursos computacionais. A base do sistema operacional era um programa monitor, usado para enfileirar tarefas (jobs). O usuário foi afastado do computador; cada programa era escrito em cartões perfurados, que por sua vez eram carregados, juntamente com o respectivo compilador (normalmente Fortran ou Cobol), por um operador, que por sua vez usava uma linguagem de controle chamada JCL (job control language). No início da computação os primeiros sistemas operacionais eram únicos, pois cada mainframe vendido necessitava de um sistema operacional específico. Esse problema era resultado de arquiteturas diferentes e da linguagem que cada máquina utilizava. Após essa fase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de tarefas (jobs), pois os sistemas eram monousuários e tinham cartões perfurados como entrada (eliminando, assim, o trabalho de pessoas que eram contratadas apenas para trocar os cartões perfurados). História https://pt.wikipedia.org/wiki/Ficheiro:Bash_demo.png https://pt.wikipedia.org/wiki/Fortran https://pt.wikipedia.org/wiki/Cobol https://pt.wikipedia.org/wiki/Mainframe 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 3/12 Diz-se que Alan Turing era um mestre nos primeiros Manchester Mark I, e ele já estava derivando a concepção primitiva de um sistema operacional a partir dos princípios da máquina de Turing universal.[3] Um dos primeiros sistemas operacionais de propósito geral foi o CTSS, desenvolvido no MIT. Após o CTSS, o MIT, os laboratórios Bell da AT&T e a General Electric desenvolveram o Multics, cujo objetivo era suportar centenas de usuários. Apesar do fracasso comercial, o Multics serviu como base para o estudo e desenvolvimento de sistemas operacionais. Um dos desenvolvedores do Multics, que trabalhava para a Bell, Ken Thompson, começou a reescrever o Multics num conceito menos ambicioso, criando o Unics (em 1969), que mais tarde passou a chamar-se Unix. Os sistemas operacionais eram geralmente programandos em assembly, até mesmo o Unix em seu início. Então, Dennis Ritchie (também da Bell) criou a linguagem C a partir da linguagem B, que havia sido criada por Thompson. Finalmente, Thompson e Ritchie reescreveram o Unix em C. O Unix criou um ecossistema de versões, onde destacam-se: System V e derivados (HP-UX, AIX); família BSD (FreeBSD, NetBSD, OpenBSD, etc.), Linux e até o Mac OS X (que deriva do Mach e FreeBSD). O BSD foi lançado em 1977, sendo ele um sistema operacional fortemente baseado no Unix, focado principalmente para a execução em máquinas específicas de alto desempenho, como o famoso computador VAX, o qual foi uma referência de hardware na época. Durante a década de 70, o Unix foi distribuído gratuitamente (incluindo seu código fonte) para universidades e órgãos governamentais norte-americanos, o que conferiu muita popularidade a este sistema. Sua interface era totalmente em modo texto, sem interface gráfica. Quando começaram a aparecer os computadores pessoais, houve a necessidade de um sistema operacional de utilização mais fácil. Em 1980, William (Bill) Gates e seu colega de faculdade, Paul Allen, fundadores da Microsoft, compram o sistema QDOS ("Quick and Dirty Operating System") de Tim Paterson por $50.000, batizam-no de MS-DOS (Microsoft Disk Operating System). O DOS original, de desenvolvimento da IBM, foi o sistema operativo que a IBM apresentou aquando do lançamento do primeiro PC, vendeu muitas cópias, como o sistema operativo nos computadorespessoais desenvolvidos pela IBM. IBM convidou a Microsoft para uma parceria para o desenvolvimento da versão 2 do IBM OS/2, um sistema operacional. Após o fim da breve parceria a IBM seguiu sozinha com o desenvolvimento do OS/2 a que deu o nome de OS/2 Warp, concorrendo diretamente com o MS Windows95. No começo da década de 1990, um estudante de computação finlandês postou um comentário numa lista de discussão da Usenet dizendo que estava desenvolvendo um núcleo de sistema operacional e perguntou se alguém gostaria de auxiliá-lo na tarefa. Este estudante chamava-se Linus Torvalds e o primeiro passo em direção ao tão conhecido Linux foi dado naquele momento. Existem vários sistemas operativos; entre eles, os mais utilizados no dia a dia, normalmente utilizados em computadores domésticos, são o Windows, Linux e macOS. Um computador com o sistema operativo instalado poderá não dar acesso a todo o seu conteúdo dependendo do utilizador. Com um sistema operativo, podemos estabelecer permissões a vários utilizadores que trabalham com este. Existem dois tipos de contas que podem ser criadas num sistema operativo, as contas de Administrador e as contas limitadas. A conta Administrador é uma conta que oferece todo o acesso à máquina, desde a gestão de pastas, ficheiros e software de trabalho ou entretenimento ao controle de todo o seu Hardware instalado. A conta Limitada é uma conta que não tem permissões para aceder a algumas pastas ou instalar software que seja instalado na raiz do sistema ou então que tenha ligação com algum Hardware que altere o seu funcionamento normal ou personalizado pelo Administrador. Para que este tipo de conta possa ter acesso a outros conteúdos do disco ou de software, o administrador poderá personalizar a Visão geral https://pt.wikipedia.org/wiki/Alan_Turing https://pt.wikipedia.org/wiki/Manchester_Mark_I https://pt.wikipedia.org/wiki/M%C3%A1quina_de_Turing_universal https://pt.wikipedia.org/wiki/CTSS https://pt.wikipedia.org/wiki/MIT https://pt.wikipedia.org/wiki/Laborat%C3%B3rios_Bell https://pt.wikipedia.org/wiki/AT%26T https://pt.wikipedia.org/wiki/General_Electric https://pt.wikipedia.org/wiki/Multics https://pt.wikipedia.org/wiki/Ken_Thompson https://pt.wikipedia.org/wiki/Unix https://pt.wikipedia.org/wiki/Dennis_Ritchie https://pt.wikipedia.org/wiki/Linguagem_C https://pt.wikipedia.org/wiki/Linguagem_B https://pt.wikipedia.org/wiki/Berkeley_Software_Distribution https://pt.wikipedia.org/wiki/FreeBSD https://pt.wikipedia.org/wiki/NetBSD https://pt.wikipedia.org/wiki/OpenBSD https://pt.wikipedia.org/wiki/Linux https://pt.wikipedia.org/wiki/Mac_OS_X https://pt.wikipedia.org/wiki/Mach_(n%C3%BAcleo) https://pt.wikipedia.org/wiki/D%C3%A9cada_de_1970 https://pt.wikipedia.org/wiki/Computador_pessoal https://pt.wikipedia.org/wiki/1980 https://pt.wikipedia.org/wiki/Bill_Gates https://pt.wikipedia.org/wiki/Paul_Allen https://pt.wikipedia.org/wiki/Microsoft https://pt.wikipedia.org/wiki/QDOS https://pt.wikipedia.org/wiki/Tim_Paterson https://pt.wikipedia.org/wiki/MS-DOS https://pt.wikipedia.org/wiki/IBM_PC https://pt.wikipedia.org/wiki/OS/2 https://pt.wikipedia.org/wiki/Linus_Torvalds https://pt.wikipedia.org/wiki/Windows https://pt.wikipedia.org/wiki/Linux https://pt.wikipedia.org/wiki/MacOS 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 4/12 O OS/360 foi colocado na estrutura principal de todos os computadores IBM no início de 1964, incluindo os computadores que ajudaram a NASA a colocar o homem na lua. conta oferecendo permissões a algumas funções do sistema como também poderá retirar acessos a certas áreas do sistema. O sistema operativo funciona com a iniciação de processos que este irá precisar para funcionar corretamente. Esses processos poderão ser ficheiros que necessitam de ser frequentemente atualizados, ou ficheiros que processam dados úteis para o sistema. Poderemos ter acesso a vários processos do sistema operativo a partir do gestor de tarefas, onde se encontram todos os processos que estão em funcionamento desde o arranque do sistema operativo até a sua utilização atual. Pode-se também visualizar a utilização da memória por cada processo, no caso de o sistema operativo começar a mostrar erros ou falhas de acesso a programas tornando-se lento, pode-se verificar no gestor de tarefas qual dos processos estará bloqueado ou com elevado número de processamento que está a afectar o funcionamento normal da memória. Um sistema computacional moderno consiste em um ou mais processadores, memória principal, discos, impressoras, teclado, mouse, monitor, interfaces de rede e outros dispositivos de entrada e saída. Enfim, é um sistema complexo. Se cada programador de aplicações tivesse de entender como tudo isso funciona em detalhes, nenhum código chegaria a ser escrito. Além disso, gerenciar todos esses componentes e usá- los de maneira otimizada é um trabalho extremamente difícil. Por isso, os computadores têm um dispositivo de software denominado sistema operacional, cujo trabalho é fornecer aos programas do usuário um modelo de computador melhor, mais simples e mais limpo e lidar com o gerenciamento de todos os recursos mencionados.[4] Um dos conceitos mais fundamentais dos Sistemas Operacionais Modernos é a distinção entre o programa e a atividade de executá-lo. O programa é apenas um conjunto estático de diretrizes e sua execução é uma atividade dinâmica [5] . Outra das diferenças que podemos observar entre um sistema operacional e aplicações convencionais é a forma com que suas rotinas são processadas em função do tempo. Um sistema operacional não é executado de forma estruturada. Suas rotinas são executadas concorrentemente em função de eventos assíncronos. Em outras palavras, eventos que podem ocorrer a qualquer momento.[6] A Estruturação em camadas é um modelo de Sistema Operacional que o divide em várias camadas sobrepostas. Cada camada proporciona um conjunto de funções que pode ser usado por outras camadas. Uma das maiores vantagens desse modelo de camadas é isolar o sistema operacional, facilitando sua alteração e depuração, além de criar uma hierarquia de níveis de modos, protegendo as camadas mais internas. O empilhamento de várias camadas de software faz com que cada pedido de uma aplicação demore mais tempo para chegar até o dispositivo periférico ou recurso a ser acessado, prejudicando o desempenho do sistema. Sistemas operacionais modernos Estrutura em camada https://pt.wikipedia.org/wiki/Ficheiro:IBM360-65-1.corestore.jpg https://pt.wikipedia.org/wiki/Processo_(inform%C3%A1tica) https://pt.wikipedia.org/wiki/Sistema_Operacional 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 5/12 O primeiro servidor para WWW rodou em um NeXTSTEP baseado no BSD. Um sistema operacional possui as seguintes funções: 1. gerenciamento de processos; 2. gerenciamento de memória; 3. gerenciamento de recursos; 4. entrada e saída de dados; 5. sistema de arquivos. O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea. São utilizados algoritmos de escalonamento para determinar qual processo será executado em determinado momento e por quanto tempo. Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados são: pipes; named pipes; memória compartilhada; soquetes (sockets); trocas de mensagens. O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser interrompido no meio da execução deuma tarefa. O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam. Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas: 1. Assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação (Tanenbaum, 1999); 2. Prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença; 3. Possibilitar que uma aplicação utilize mais memória do que a fisicamente existente. Funcionamento Gerenciamento de processos Gerenciamento de memória Swapping https://pt.wikipedia.org/wiki/Ficheiro:First_Web_Server.jpg https://pt.wikipedia.org/wiki/World_Wide_Web https://pt.wikipedia.org/wiki/Gerenciamento_de_mem%C3%B3ria https://pt.wikipedia.org/wiki/Entrada/sa%C3%ADda https://pt.wikipedia.org/wiki/Sistema_de_ficheiros https://pt.wikipedia.org/wiki/Multitarefa https://pt.wikipedia.org/wiki/Escalonamento_de_processos#Algoritmos_de_escalonamento https://pt.wikipedia.org/wiki/Inter-Process_Communication https://pt.wikipedia.org/wiki/Multiprocessamento https://pt.wikipedia.org/wiki/Multiprocessamento_sim%C3%A9trico https://pt.wikipedia.org/wiki/NUMA https://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Mem%C3%B3ria_virtual 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 6/12 Dentro de gerenciamento de memória, pode não ser possível manter todos os processos em memória, muitas vezes por não existir memória suficiente para alocar aquele processo. Para solucionar esse problema existe um mecanismo chamado swapping, onde a gerência de memória reserva uma área do disco para o seu uso em determinadas situações, e um processo é completamente copiado da memória para o disco; este processo é retirado da fila do processador e mais tarde será novamente copiado para a memória; Então, o processo ficará ativo na fila novamente. O resultado desse revezamento no disco é que o sistema operacional consegue executar mais processos do que caberia em um mesmo instante na memória. Swapping impõe aos programas um grande custo em termos de tempo de execução, pois é necessário copiar todo o processo para o disco e mais tarde copiar novamente todo o processo para a memória. Em sistemas onde o usuário interage com o programa durante sua execução, o mecanismo de swapping é utilizado em último caso, quando não se é possível manter todos os processos na memória, visto que a queda no desempenho do sistema é imediatamente sentida pelo usuário.[7] Uma das tarefas com extrema importância atribuída ao sistema operacional é o gerenciamento de recursos, que tem a função de definir políticas para gerenciar o uso dos recursos de hardware pelos aplicativos, resolvendo disputas e conflitos. Vários programas de entrada de dados competem pela vez na CPU (Unidade Central de Processamento) e demandam memória, espaço em disco e largura. O sistema operacional tem a função de cuidar de cada aplicativo e para que os mesmos tenham recursos necessários para o melhor funcionamento e gerencia a capacidade limitada do sistema para que possa atender todas as necessidades de aplicativos e usuários. Sistemas operacionais controlam e gerenciam a entrada e saída (E/S) de dispositivos por três razões. Primeiro, porque a maioria do hardware do dispositivo utiliza uma interface de baixo nível, a interface do software é complexa. Em segundo lugar, porque um dispositivo é um recurso compartilhado, um sistema operacional fornece acesso de acordo com as políticas que tornam a partilha justa e segura. Em terceiro lugar, um sistema operacional define uma interface de alto nível que esconde detalhes e permite que um programador possa usar um conjunto coerente e uniforme das operações ao interagir com os dispositivos.[8] O subsistema de E/S pode ser divididos em três peças conceituais: 1. Uma interface abstrata que consiste funções de E/S de alto nível que os processos possam usar para executar I / O; 2. Um conjunto de dispositivos físicos; 3. Software de driver de dispositivo que conecta os dois. A memória principal do computador é volátil, e seu tamanho é limitado pelo custo do hardware. Assim, os usuários necessitam de algum método para armazenar e recuperar informações de modo permanente. Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil (p.ex., disco), que pode ser lido e gravado por um ou mais processos. Gerenciamento de recursos Entrada e saída de dados Sistema de arquivos Tipos de sistemas https://pt.wikipedia.org/w/index.php?title=Swapping&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Entrada/sa%C3%ADda https://pt.wikipedia.org/wiki/Bytes https://pt.wikipedia.org/wiki/Sistema_de_ficheiros 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 7/12 Também chamados como sistema mono-tarefa, o sistema operacional mono-programado possui apenas um processador, realiza alocação de memória para somente um processo e um usuário por vez. Apresenta também uma CPU ociosa durante E/S e sua implementação é feita de forma simples. O sistema em lote é também um sistema monoprocessado e utiliza a linguagem de Controle de Tarefas (JLC). Caracteriza-se por ter programas armazenados em disco ou fita, que uma vez iniciados, exigem pouca ou nenhuma interação do usuário, processando de forma sequencial e contínua até o fim do job, quando então é devolvido o resultado final do processamento. Exemplos de JLC: // $JOB // $FORTRAN Programa escrito em FORTRAN // $LOAD // $RUN Dados de entrada do programa // $END Os sistemas multiprocessadores – dois ou mais processadores trabalhando juntos – podem ser divididos em duas partes: Sistemas fortemente acoplados; Sistemas fracamente acoplados. Dentro de sistemas fortemente acoplados – memória única compartilhada por dois ou mais processadores, tendo um mesmo sistema operacional gerenciando todos os processadores –, encontramos mais duas divisões: Sistemas simétricos – onde os processadores têm a mesma função; Sistemas assimétricos – onde um processador (mestre) pode executar serviços do sistema operacional. Dentro de sistemas fracamente acoplados – mais de dois sistemas operacionais que são ligados por canal de comunicação, tendo hardware e sistemas operacionais independentes – temos: Sistemas operacionais de rede – cada sistema, também chamado host ou nó, possui seus próprios recursos de hardware, como processadores, memória e dispositivos de entrada e saída. Os nós são totalmente independentes dos terminais, sendo interconectados por uma rede de comunicação de dados, formando uma rede de computadores. Os sistemas operacionais de rede são utilizados tanto em redes locais (Local Area Network - LAN), como em redes distribuídas (Wide Area Network - WAN). A ligação entre os diversos nós é feita por uma interface de rede que permite o acesso aos demais componentes da rede. Não existe um limite Sistema Mono-programado Sistema em Lote Sistema multiprocessadores 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 8/12 Aplicativo com interface textual, rodando no sistema operacional FreeDOS máximo para o número de nós que podem fazer parte de uma rede de computadores. Cada nó é totalmente independente dos demais, possuindo seu próprio sistema operacional e espaço de endereçamento. Os sistemas operacionais podem ser heterogêneos. Na Internet, cada host pode estar processando um sistema operacional diferente, mas todos estão se comunicando através do mesmo protocolo de rede, no caso, os protocolos da família TCP/IP (Transmission Control Protocol/Internet Protocol).[6] Sistemas operacionais distribuídos – computadores independentes que parecem um único computador aos olhos do usuário; Trata-se deum conjunto de processos que são executados de forma concorrente, cada um dos quais acessando um subconjunto de recursos do sistema. E essa comunicação é feita em forma de envio de mensagens. Os sistemas multi-programado para tempo real além de serem sistemas multiprogramados, possuem um tempo de resposta rígido e por isso são muito utilizados no controle de processos. Têm menos time-slice e mais prioridade, ademais, seus processos são ativados por sensores. A aplicação deste tipo de sistema está em máquinas de usinas, refinarias, tráfego aéreo, etc. Os sistemas operacionais fornecem abstração de hardware para que seus recursos possam ser usados de maneira correta e padronizada, mas para ser possível operar um computador, é necessário fornecer também uma interface para que o usuário possa desfrutar dos recursos do sistema. Atualmente as principais interfaces de uso são as seguintes: A interface de terminal, também chamada de interface de linha de comando ou "CLI" (Command Line Interface) funciona exclusivamente com o teclado. Os comandos são digitados a partir de um prompt e são interpretados por um interpretador de comandos, conhecidos também por shells, bastante comuns em sistemas padrão POSIX. Um exemplo de interpretador de comandos seria o Bash. Usada geralmente por usuários avançados e em atividades específicas, como gerenciamento remoto, utiliza poucos recursos de hardware em comparação a interface gráfica. Assim como a interface de terminal, a interface textual também é baseada em texto, porém também tem à disposição um ambiente de trabalho composto por menus, janelas e botões. Esse tipo de interface tinha um uso difundido em aplicações baseadas no MS- DOS, que, inclusive, nas versões mais recentes contava com um gerenciador de programas e arquivos baseados nesse tipo de interface (o DOS Shell). Atualmente essa interface é muito rara, praticamente restrita a sistemas implementados na década de 1980 e início da década de 1990. Esse ambiente ainda prescinde do uso mouse, embora seja possível usá-lo através do uso da biblioteca ncurses no desenvolvimento dos softwares. Sistema Multi-programado para Tempo Real Interface de uso Interface de terminal Interface textual https://pt.wikipedia.org/wiki/Ficheiro:Fdedit.png https://pt.wikipedia.org/wiki/Prompt https://pt.wikipedia.org/wiki/Interpretador_de_comandos https://pt.wikipedia.org/wiki/Bash https://pt.wikipedia.org/wiki/MS-DOS https://pt.wikipedia.org/wiki/D%C3%A9cada_de_1980 https://pt.wikipedia.org/wiki/D%C3%A9cada_de_1990 https://pt.wikipedia.org/wiki/Ncurses 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 9/12 Um exemplo da linha de comando Nesse tipo de interface, também chamada GUI (Graphic User Interface) além de menus, janelas e botões também existem figuras, tanto vetoriais quanto fotografias. O usuário interage com esse tipo de interface usando o mouse, podendo também usar o teclado e teclas de atalho, ou então usando toques e gestos em touchscreens. A interface gráfica permite atuar com algumas aplicações que seriam impossíveis através da linha de comando puramente, como edição de imagem e vídeo. Acrescentar facilidade de uso e agilidade é o objetivo da interface gráfica, tendo a desvantagem de consumir muito mais memória que interfaces de linha de comando. Ao contrário das interfaces textuais e de terminal, as interfaces gráficas dependem de um servidor gráfico para funcionar e se comunicar com o sistema, e no caso dos sistemas para desktops e laptops, inclui um gerenciador de janelas em muitos casos, para que seja possível usar mais de um aplicativo na mesma tela. Em sistemas padrão POSIX é comum existir mais de um ambiente gráfico para o mesmo sistema, podendo ser escolhido a critério do usuário. Interfaces de voz, ou VUI (Voice User Interface), são aquelas em que o usuário interage com o sistema por meio de comandos sonoros. Sendo de desenvolvimento relativamente recente, tem sua aplicação em dispositivos adaptados para cegos e recentemente têm aparecido também para uso geral em smartphones, tablets e desktops. Núcleo monolítico ou monobloco: o núcleo consiste em um único processo executando numa memória protegida (espaço de núcleo) executando as principais funções. Ex.: MAC OS X, OS/2, Windows, Linux, FreeBSD. Micronúcleo ou modelo cliente-servidor: o núcleo consiste de funções mínimas (comunicação e gerenciamento de processos), e outras funções, como sistemas de arquivos e gerenciamento de memória, são executadas no espaço do usuário como serviços; as aplicações (programas) são os clientes. Ex.: GNU Hurd, Mach. Sistema em camadas: funções do núcleo irão executar em camadas distintas, de acordo com seu nível de privilégio. Ex.: Multics. Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex.: VM/370, VMware, Xen. Monotarefa: pode-se executar apenas um processo de cada vez Ex.: MS-DOS. Multitarefa: além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é feito de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Cada processo recebe um tempo para ser executado. Ao final desse tempo, outro processo é executado. Essa alternância de processos chama-se concorrência. Interface gráfica Interface de voz Classificações Em relação ao seu projeto (arquitetura) Quanto ao gerenciamento de processos https://pt.wikipedia.org/wiki/Ficheiro:Command_line.png https://pt.wikipedia.org/wiki/Interface_do_utilizador https://pt.wikipedia.org/wiki/Touchscreen https://pt.wikipedia.org/wiki/Cegueira https://pt.wikipedia.org/wiki/Monol%C3%ADtico https://pt.wikipedia.org/wiki/MAC_OS_X https://pt.wikipedia.org/wiki/OS/2 https://pt.wikipedia.org/wiki/Windows https://pt.wikipedia.org/wiki/Linux https://pt.wikipedia.org/wiki/FreeBSD https://pt.wikipedia.org/wiki/Micron%C3%BAcleo_(inform%C3%A1tica) https://pt.wikipedia.org/wiki/GNU_Hurd https://pt.wikipedia.org/wiki/Mach_(n%C3%BAcleo) https://pt.wikipedia.org/w/index.php?title=Em_camadas&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Multics https://pt.wikipedia.org/w/index.php?title=VM/370&action=edit&redlink=1 https://pt.wikipedia.org/wiki/VMware https://pt.wikipedia.org/wiki/Xen https://pt.wikipedia.org/wiki/Monotarefa https://pt.wikipedia.org/wiki/MS-DOS https://pt.wikipedia.org/wiki/Multitarefa 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 10/12 Multitarefa cooperativa: Executa dois ou mais programas em simultâneo mas o programa que está em primeiro plano tem controlo sobre o processador. Neste caso se este programa falhar bloqueia o computador e tem que ser reiniciado. Exemplo de SO: Windows 3.x e versões anteriores ao Mac OS 8. Multitarefa preemptiva: É o processador que controla a execução dos programas, desta forma permite ao sistema operativo recuperar o controlo caso um programa bloqueie. O utilizador perde os trabalhos do programa que falhou mas os restantes programas continuam a trabalhar. Exemplo de SO: Unix; Linux; Windows 95 e superiores; MAC OS 8 e superiores; etc. Elemento de lista com marcas: Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X. Cabe destacar que processos só podem estar executando simultaneamente caso o sistema seja multiprocessado, já que, em que cada instante de tempo, apenas um processo está em execução em um processador ou núcleo de processamento (core). Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores. Se os processadores estivem na mesma máquina física, o sistema é chamado de Sistema Multiprocessado Fortemente Acoplado. Caso esteja em máquinas diferentes, trata-se de um Sistema Multiprocessado Fracamente Acoplado. Monousuário: apenas um usuário por vez (apesar de poder suportar recursos como troca de usuário). Ex.: Windows.Esse também pode ser acessado por terminais e conexão remota. Multiusuário: vários usuários usam o computador ao mesmo tempo, seja por diversos terminais, seja por conexão remota como o SSH. Ex.: Linux, Unix. BeOS † CentOS CP/M † DaVinci OS Debian Arch Linux Manjaro Linux Sabayon Linux SolusOS DragonflyBSD eComStation Fedora FreeBSD FreeDOS Gentoo Haiku Inferno Linux Mint macOS Mac OS Classic † Mageia MenuetOS MINIX MS-DOS † NetBSD NeXTStep † OpenBSD OS/2 † OpenSuSE PCLinuxOS Plan 9 ReactOS Slackware Solaris Unix System V Ubuntu Microsoft Windows Elementary OS Android Bada Blackberry OS Firefox OS † iOS Maemo MeeGo Tizen Ubuntu Touch WebOS Windows Mobile Windows Phone Symbian OS RedHat Harmony OS Quanto à quantidade de usuários concorrentes Exemplos de sistemas operacionais Para desktop/servidores Para dispositivos móveis (tablets e smartphones) https://pt.wikipedia.org/wiki/Multitarefa_cooperativa https://pt.wikipedia.org/wiki/Preemptividade https://pt.wikipedia.org/wiki/OS/2 https://pt.wikipedia.org/wiki/Windows https://pt.wikipedia.org/wiki/Linux https://pt.wikipedia.org/wiki/FreeBSD https://pt.wikipedia.org/wiki/Mac_OS_X https://pt.wikipedia.org/wiki/Multiprocessamento https://pt.wikipedia.org/wiki/Monousu%C3%A1rio https://pt.wikipedia.org/wiki/Windows https://pt.wikipedia.org/wiki/Multiusu%C3%A1rio https://pt.wikipedia.org/wiki/Terminal_(inform%C3%A1tica) https://pt.wikipedia.org/w/index.php?title=Conex%C3%A3o_remota&action=edit&redlink=1 https://pt.wikipedia.org/wiki/SSH https://pt.wikipedia.org/wiki/Linux https://pt.wikipedia.org/wiki/Unix https://pt.wikipedia.org/wiki/BeOS https://pt.wikipedia.org/wiki/CentOS https://pt.wikipedia.org/wiki/CP/M https://pt.wikipedia.org/w/index.php?title=DaVinci_OS&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Debian https://pt.wikipedia.org/wiki/Arch_Linux https://pt.wikipedia.org/wiki/Manjaro_Linux https://pt.wikipedia.org/wiki/Sabayon_Linux https://pt.wikipedia.org/wiki/SolusOS https://pt.wikipedia.org/wiki/DragonflyBSD https://pt.wikipedia.org/wiki/EComStation https://pt.wikipedia.org/wiki/Fedora_Linux https://pt.wikipedia.org/wiki/FreeBSD https://pt.wikipedia.org/wiki/FreeDOS https://pt.wikipedia.org/wiki/Gentoo https://pt.wikipedia.org/wiki/Haiku_(sistema_operacional) https://pt.wikipedia.org/wiki/Inferno_(Sistema_Operacional) https://pt.wikipedia.org/wiki/Linux_Mint https://pt.wikipedia.org/wiki/MacOS https://pt.wikipedia.org/wiki/Mac_OS_Classic https://pt.wikipedia.org/wiki/Mageia https://pt.wikipedia.org/wiki/MenuetOS https://pt.wikipedia.org/wiki/MINIX https://pt.wikipedia.org/wiki/MS-DOS https://pt.wikipedia.org/wiki/NetBSD https://pt.wikipedia.org/wiki/NEXTSTEP https://pt.wikipedia.org/wiki/OpenBSD https://pt.wikipedia.org/wiki/OS/2 https://pt.wikipedia.org/wiki/OpenSuSE https://pt.wikipedia.org/wiki/PCLinuxOS https://pt.wikipedia.org/wiki/Plan_9_from_Bell_Labs https://pt.wikipedia.org/wiki/ReactOS https://pt.wikipedia.org/wiki/Slackware https://pt.wikipedia.org/wiki/Solaris_(sistema_operacional) https://pt.wikipedia.org/wiki/System_V https://pt.wikipedia.org/wiki/Ubuntu https://pt.wikipedia.org/wiki/Microsoft_Windows https://pt.wikipedia.org/wiki/Elementary_OS https://pt.wikipedia.org/wiki/Android https://pt.wikipedia.org/wiki/Bada_(Sistema_operacional) https://pt.wikipedia.org/wiki/Blackberry_OS https://pt.wikipedia.org/wiki/Firefox_OS https://pt.wikipedia.org/wiki/IOS https://pt.wikipedia.org/wiki/Maemo https://pt.wikipedia.org/wiki/MeeGo https://pt.wikipedia.org/wiki/Tizen https://pt.wikipedia.org/wiki/Ubuntu_Touch https://pt.wikipedia.org/wiki/WebOS https://pt.wikipedia.org/wiki/Windows_Mobile https://pt.wikipedia.org/wiki/Windows_Phone https://pt.wikipedia.org/wiki/Symbian_OS https://pt.wikipedia.org/wiki/RedHat https://pt.wikipedia.org/wiki/Harmony_OS 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 11/12 † - descontinuado BACH, Maurice J. The design of the Unix operating system. Upper Saddle River: Prentice Hall. 1990. BOVET Daniel P.; CESATI, Marco. Understanding de Linux kernel. 3.ed. Sebastopol: O'Reilly. 2005. MCKUSICK, Marshall K.; NEVILLE-NEIL, George V. The design and implementation of the FreeBSD operating system. Upper Saddle River: Addison-Wesley. 2004. RUSSINOVITCH, Mark E.; SOLOMON, David A. Microsoft Windows internals. 4.ed. Redmond: Microsoft Press. 2005. SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005. STALLINGS, William. Operating systems: internals and design principles. 5.ed. Upper Saddle River: Pearson Prentice Hall. 2004. TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999. Sistema operacional móvel Pseudossistema operacional Sistema distribuído Inter-Process Communication Sistemas operacionais on-line Sistema operacional em disco Root no Android Sistema Operacional de Tempo-Real Obtida de "https://pt.wikipedia.org/w/index.php?title=Sistema_operativo&oldid=57963769" Esta página foi editada pela última vez às 18h47min de 5 de abril de 2020. 1. Tanenbaum, Andrew S. (2006). Operating systems: design and implementation. USA: Prentice Hall. 6 páginas 2. Comer, Douglas (2012). Operating system design: the XINU approach, Linksys version. New York: CRC Press. 2 páginas 3. Hansen, Per Brinch, ed. (2001). Classic Operating Systems (http://books.google.co m/?id=-PDPBvIPYBkC&lpg=PP1&pg=PP1#v= onepage&q). [S.l.]: Springer. pp. 4–7. ISBN 0- 387-95113-X 4. Tanenbaum, Andrew S. (2009). Sistemas operacionais modernos. São Paulo: Pearson Education do Brasil Ltda 5. J. GLENN BROOKSHEAR,CIENCIA DA COMPUTAÇAO: UMA VISAO ABRANGENTE, Bookman, 2005 6. F. B. Machado; L. P. Maia, Arquitetura de Sistemas Operacionais, LTC, 2007 7. (Sistemas Operacionais - Rômulo Silva de Oliveria, Alexandre Carissimi e Simão Toscani - Série Livros Didáticos - No 11 - Editora Sagra Luzzatto - UFRGS) 8. Comer, Douglas (2012). Operating system design: the Xinu approach. New York: CRC Press. 239 páginas Referências Referências bibliográficas Ver também https://pt.wikipedia.org/wiki/Sistema_operacional_m%C3%B3vel https://pt.wikipedia.org/wiki/Pseudossistema_operacional https://pt.wikipedia.org/wiki/Sistema_distribu%C3%ADdo https://pt.wikipedia.org/wiki/Inter-Process_Communication https://pt.wikipedia.org/w/index.php?title=Desktop_online&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Sistema_operacional_em_disco https://pt.wikipedia.org/wiki/Root_no_Android https://pt.wikipedia.org/wiki/Sistema_operacional_de_tempo-real https://pt.wikipedia.org/w/index.php?title=Sistema_operativo&oldid=57963769 http://books.google.com/?id=-PDPBvIPYBkC&lpg=PP1&pg=PP1#v=onepage&q https://pt.wikipedia.org/wiki/International_Standard_Book_Number https://pt.wikipedia.org/wiki/Especial:Fontes_de_livros/0-387-95113-X 08/05/2020 Sistema operativo – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/Sistema_operativo 12/12 Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de utilização. https://creativecommons.org/licenses/by-sa/3.0/deed.pt https://foundation.wikimedia.org/wiki/Condi%C3%A7%C3%B5es_de_Uso
Compartilhar