Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introdução......................................................................................................................2
2. História..........................................................................................................................3
3. Visão geral.....................................................................................................................5
4. Sistemas operacionais modernos...................................................................................6
5. Estrutura em camada.....................................................................................................6
6. Funcionamento..............................................................................................................7
6.1. Gerenciamento de processos......................................................................................8
6.2 Gerenciamento de memória.........................................................................................8
6.2.1 Swapping..................................................................................................................9
6.3 Gerenciamento de recursos..........................................................................................9
6.4 Entrada e saída de dados............................................................................................10
6.5 Sistema de arquivos...................................................................................................10
7 Tipos de sistemas..........................................................................................................10
7.1 Sistema Mono-programado.......................................................................................10
7.2 Sistema em Lote........................................................................................................10
7.2.1 Exemplos de JLC:...................................................................................................11
7.2.2 Dados de entrada do programa...............................................................................11
7.3 Sistemas multiprocessadores.....................................................................................11
7.3.1 Sistemas simétricos................................................................................................12
7.3.2 Sistemas assimétricos.............................................................................................12
7.3.2.1 Sistemas operacionais de rede.............................................................................13
7.3.3 Sistemas operacionais distribuídos.........................................................................13
7.4 Sistema Multi-programado para Tempo Real...........................................................13
8. Interface de uso............................................................................................................14
8.1 Interface de terminal..................................................................................................14
8.2 Interface textual.........................................................................................................14
8.3 Interface gráfica.........................................................................................................15
8.4 Interface de voz.........................................................................................................15
9. Classificações..............................................................................................................15
9.1 Em relação ao seu projeto (arquitetura).....................................................................15
9.1.1 Micro núcleo ou modelo cliente-servidor...............................................................15
9.2 Quanto ao gerenciamento de processos.....................................................................16
9.2.1 Multitarefa..............................................................................................................16
9.2.1.1 Multitarefa cooperativa.......................................................................................16
9.2.1.2 Multitarefa preemptiva........................................................................................16
9.2.2 Multiprocessamento...............................................................................................17
9.3 Quanto à quantidade de usuários concorrentes.........................................................17
9.3.1 Mono usuário..........................................................................................................17
9.3.2 Multi usuário..........................................................................................................17
10. Exemplos de sistemas operacionais...........................................................................17
10.1 Para desktop/servidores...........................................................................................17
10.2 Para dispositivos móveis (tablets e smartphones):..................................................18
11. Referências Bibliográficas.........................................................................................20
1
1. Introdução
Sistema operativo (português europeu) ou operacional (português brasileiro) é 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
(português brasileiro) ou utilizador (português europeu). 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 autossustentá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.
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).
2
2. História
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, John von Neumann, John Adam Presper Eckert Jr,
William Mauchley e Konrad Zuse 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 um 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, usando uma linguagem de controle chamada JCL (job control
language).
Diz-se que Alan Turing era um mestre nos primeiros Manchester Mark I, e que já estava
derivando a concepção primitiva de um sistema operacional a partir dos princípios da
máquina de Turing universal.[3]
3
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 programados 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, 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 US$ 50 mil e
batizaram-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
computadores pessoais desenvolvidos pela IBM. IBM convidou a Microsoft para uma
parceria para o desenvolvimento da versão 2 do IBM OS/2. Após o fim da breve
parceria, a IBM prosseguiu sozinha com o desenvolvimento do OS/2, a que deu o nome
de OS/2 Warp, fazendo concorrência direta ao MS Windows 95.
4
3. Visão geral
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; isso, pois com um sistema operativo, podemos
estabelecer permissões a vários utilizadores que trabalham com este.
Para isso 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 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.
5
gestor de tarefas qual dos processos estará bloqueado ou com elevado número de
processamento que está a afetar o funcionamento normal da memória.
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]
5. Estrutura em camada
Ver artigo principal: Sistema Operacional em 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.
6
6. Funcionamento
Um sistema operacional possui as seguintes funções:
gerenciamento de processos;
gerenciamento de memória;
gerenciamento de recursos;
entrada e saída de dados;
sistema de arquivos.
7
6.1. Gerenciamento de processos
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.
pipes;
named pipes;
memória compartilhada;
soquetes (sockets);
trocas de mensagens.
Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas:
8
Prover proteção da memória para impedir que um processo utilize um endereço
de memória que não lhe pertença;
Possibilitar que uma aplicação utilize mais memória do que a fisicamente
existente.
6.2.1 Swapping
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á activo 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]
9
6.4 Entrada e saída de dados
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]
Uma interface abstrata que consiste funções de E/S de alto nível que os
processos possam usar para executar I / O;
Um conjunto de dispositivos físicos;
Software de driver de dispositivo que conecta os dois.
7 Tipos de sistemas
10
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.
11
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 autossustentá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.
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:
12
7.3.2.1 Sistemas operacionais de rede
Cada sistema, também chamado host ou nó, possuem seus próprios recursos de
hardware, como processadores, memória e dispositivos de entrada e saída. Nós somos
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 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]
A aplicação deste tipo de sistema está em máquinas de usinas, refinarias, tráfego aéreo,
etc.
13
8. Interface de uso
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 (2009) as principais interfaces de uso são
as seguintes:
14
8.3 Interface gráfica
Nesse tipo de interface, também chamada GUI (Graphic User Interface) além de menus,
janelas e botões também existem figuras, tanto vectoriais quanto fotografias. O usuário
interage com esse tipo de interface usando o rato, podendo também usar o teclado e
teclas de atalho, ou então usando toques e gestos em touch-screen. A interface gráfica
permite actuar 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 objectivo 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.
9. Classificações
Um exemplo da linha de comando
15
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.
Monitor de máquinas virtuais: fornece uma abstracção do hardware para vários sistemas
operacionais. Ex.: VM/370, VMware, Xen.
9.2.1 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.
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).
16
9.2.2 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.
9.3.2 Multi usuá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
17
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
18
Tizen
Ubuntu Touch †
WebOS
Windows Mobile
Windows Phone †
Symbian OS †
RedHat †
Harmony OS
19
11. Referências Bibliográficas
↑ Tanenbaum, Andrew S. (2006). Operating systems: design and implementation. USA:
Prentice Hall. 6 páginas
↑ Comer, Douglas (2012). Operating system design: the XINU approach, Linksys
version. New York: CRC Press. 2 páginas
↑ Hansen, Per Brinch, ed. (2001). Classic Operating Systems. [S.l.]: Springer. pp. 4–7.
ISBN 0-387-95113-X
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.
20
DIVISÃO DE ENGENHARIA 1˚ ANO
TRABALHO
DE
FUNDAMENTOS DE INFORMÁTICA
TURMA: A
GRUPO: 4˚
WILTON SÉRGIO