Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operativos
Universidade Licungo
Maio de 2020
Beira
Abede Isaquiel Cugulo
Sistemas Operativos
Docente:
Universidade Licungo
Maio de 2020
Beira
Índice
Introdução.............................................................................................................................................1
A máquina virtual..................................................................................................................................2
Maquina Estendida................................................................................................................................2
Máquina Multinível...............................................................................................................................3
Arquiteturas do Núcleo..........................................................................................................................4
Arquitetura Monolítica..........................................................................................................................5
Arquitetura em Camadas.......................................................................................................................5
Máquina Virtual....................................................................................................................................6
Arquitetura MicroKernel.......................................................................................................................6
Conclusão............................................................................................................................................11
Bibliografia..........................................................................................................................................12
Introdução
Neste trabalho irei abordar sobre o as maquinas em um Sistema Operacional que e um
programa, que serve como ponte entre os aplicativos software e a parte física do sistema
hardware, e tem a função de gerenciar seus recursos dizer qual aplicativo terá acesso ao
processador, memória, sistema de arquivo, etc. Um outro conceito interessante é que sistema
operacional pode ser definido como um conjunto de programas especialmente feitos para a
execução de várias tarefas, entre as quais servir de intermediário entre o utilizador e o
computador. Um sistema operacional, tem também como função, gerir todos os periféricos de
um computador.
1
A máquina virtual
E um contêiner de software rigidamente isolado que contém um sistema operacional e
aplicativos. Cada VM autocontida é completamente independente. Colocar múltiplas VMs
em um único computador permite que vários sistemas operacionais e aplicativos sejam
utilizados em um só servidor físico ou host. Uma fina camada de software, chamada
hypervisor, desassocia as máquinas virtuais do host e aloca dinamicamente os recursos de
computação a cada uma dessas máquinas, conforme o necessário.
A virtualização é o processo de criar uma representação baseada em software (ou virtual) de
algo, em vez de um processo físico. Consiste na emulação de ambiente isolado, capazes de
rodar diferentes sistemas operacionais dentro de uma mesma máquina.
Isso permite a execução de softwares que não foram projetados originalmente para um
determinado sistema operacional, uma vez que a máquina virtual que será executada pode
conter o sistema operacional necessário ao software sem que isso gere problemas ao sistema
do computador hospedeiro.
Essa técnica ainda oferece como vantagem uma camada de abstração dos verdadeiros
recursos de uma máquina, provendo um hardware virtual para cada sistema, o que possibilita
a distribuição da máquina virtual para qualquer computador hospedeiro independente do
hardware ou sistema operacional que esteja sendo utilizado.
Maquina Estendida
2
Como máquina estendida, o sistema operacional oculta a ‘verdade’ do programador sobre o
hardware e apresenta uma visão simples e agradável. Ele protege o programador do hardware
do disco e apresenta uma interface orientada a arquivos simples, e também oculta muitos
detalhes desagradáveis relacionados ao nível inferior O sistema operacional fornece uma
variedade de serviços que os programas podem obter usando instruções especiais conhecidas
como chamadas ao sistema.
Máquina Multinível
Um programa pode ser definido como uma seqüência de instruções que descrevem como
executar uma determinada tarefa. Uma instrução pode ser definida como um comando para o
processador. Linguagem de máquina corresponde ao conjunto de instruções primitivas do
computador. Devem ser simples, reduzindo a complexidade e custo dos circuitos. Tradução é
o método pelo qual um programa escrito numa linguagem L2 é substituído por um outro
programa escrito em L1, então executado pela máquina M1, cuja linguagem de máquina é
L1.
3
As instruções são executadas interpretativamente pelo microprograma. Em máquinas
que não tenham o nível de microprogramação, as instruções de nível convencional de
máquina são executadas diretamente pelos circuitos.
Nível 3 ou nível de sistema operacional apresenta a maior parte das instruções em
linguagem de nível 2, um conjunto de novas instruções, organização diferente da
memória, capacidade de execução de dois ou mais programas em paralelo. As novas
facilidades são realizadas por um interpretador denominado sistema operacional, em
execução no nível 2. As instruções de nível 3 idênticas às de nível 2 são executadas
diretamente pelo microprograma.
Nível 4 ou nível de linguagem de montagem consiste de uma forma simbólica para
uma linguagem de nível inferior. Os programas em linguagem de montagem são
traduzidos para uma linguagem de nível 2 ou 3, e, então, interpretados pela máquina
apropriada. O programa que executa a tradução é denominado montador.
Nível 5 ou nível de linguagem orientada para problemas consiste de linguagem de
alto-nível. Os programas escritos nessas linguagens são, normalmente, traduzidos para
o nível 3 ou 4 por tradutores conhecidos como compiladores.
Os níveis 2 e 3 são sempre interpretados, enquanto os níveis 4 e 5 são, geralmente,
traduzidos. As linguagens de máquina dos níveis 1, 2 e 3 são numéricas, ao passo que
as dos níveis 4 e 5 são simbólicas, contento palavras e abreviaturas. O hardware é
constituído pelos circuitos eletrônicos e o software é constituído pelos programas. O
firmware consiste no software embutido em dispositivos eletrônicos durante a
fabricação. Em muitos computadores, o microprograma está em firmware.
Hardware e software são logicamente equivalentes, isto é, qualquer operação efetuada pelo
software pode também ser implementada pelo hardware e qualquer instrução executada pelo
hardware pode também ser simulada pelo software. A decisão de colocar certas funções em
hardware e outras em software baseia-se em fatores tais como: custo, velocidade,
confiabilidade e possíveis modificações.
Arquiteturas do Núcleo
O projeto de um sistema operacional é realizado de forma a atender a requisitos operacionais
de desempenho, portabilidade, confiabilidade, facilidade de uso, segurança.
4
O projeto do sistema operacional também depende da arquitetura de hardware e também do
tipo de sistema operacional que se deseja construir: batch, tempo compartilhado, tempo real,
multi programado, multi processado, etc.
Os primeiros sistemas operacionais eram escritos em Assembly mas isso garantia
performance excepcional nos sistemas operacionais mas causava uma dependencia muito
grando do sistema operacional em relação ao hardware da máquina e comprometia
seriamente a portabilidade. O sistema operacional tinha que ser reescrito se precisasse ser
instalado em uma máquina com arquitetura e hardware diferente.
O sistemas operacionais atuais são escritos em linguagens de alto nível, principalmente C e
C++ o que garante portabilidade e independencia de hardware conteudo o desempenho é
inferior aos antigos sistemas operacionais. Para minimizar este problema, os projetistas ainda
usam Assembly para os componentes críticos do sistema operacional tais como drivers e as
rotinas de tratamento de exceção que nós vimos na aula passada.
A forma como os componentes do sistema operacional são organizados pode variar, sendo
que existem várias arquiteturas de sistemas operacionais disponíveis.
Arquitetura Monolítica
A arquitetura monolítica foi utilizada nos primeiros sistemas operacionais tais como CP/M,
MS-DOS e nas primeiras versões do Linux. Nesta arquitetura os componentes do sistema são
compilados em módulos separados e depois linkados em um único programa executável. Os
módulos são carregados em memória e interagem entre si. A manutenção deste tipo de
sistema é bem difícil.
Arquitetura em Camadas
A arquitetura em camadas surgiu devido a complexidade dos sistema operacionais na medida
em que foram evoluindo. Nesta arquitetura o sistema operacional é formado por níveis ou
camadas onde as camadas inferior oferecem serviços às camadas superiores. As camadas
inferiores são privilegiadas
A vantagem deste tipo de arquitetura é o isolamento das camadas e a segurança e proteção às
camadas mais internas onde fica o kernel.
A desvantagem é que o desempenho do sistema é afetado pela troca de modo de acesso.
Quando um aplicativo do usuário solicita um serviço da camada kernel é necessário passar
por várias outras camadas ( supervisor, executivo ) e realizar várias trocas do modo de
acesso.
5
A maioria dos sistemas operacionais atuais tais como Linux e Windows utilizam o modelo de
arquitetura em camadas sendo que estes sistemas implementam apenas duas camadas
( modo usuário e modo kernel ).
Máquina Virtual
Um sistema operacional é formado por níveis, onde a camada de nível mais baixo é o
hardware. Acima dessa camada temos o sistema operacional que oferece serviços para os
aplicativos do usuário.
Na arquitetura de máquina virtual existe uma camada intermediária entre o hardware e o
sistema operacional chamada gerencia de máquinas virtuais.
Esta camada cria diversas máquinas virtuais independentes, onde cada uma oferece uma
cópia virtual do hardware, incluindo os modos de acesso, interrupções, memória, dispositivos
de entrada e saída, etc.
Como cada máquina virtual é independente das outras, é possível que cada VM tenha seu
próprio sistema operacional e que seus usuários executem suas aplicações como se o
computador estivesse dedicado a cada um deles. Esta é uma arquitetura altamente complexa.
Arquitetura MicroKernel
A arquitetura MicroKernel busca tornar o núcleo do sistema, o kernel o menor e mais simples
possível. Nesta arquitetura os serviços do sistema operacional são disponibilizados como
serviços. Cada serviço oferece um conjunto de funções como gerência de arquivos, gerência
de processos, gerência de memória e etc.
Quando uma aplicação do usuário solicita um serviço é feita uma solicitação ao processo
responsável pelo serviço.
A aplicação que solicita o serviço é chamada cliente e o processo que responde à solicitação é
chamado de servidor.
O núcleo do sistema se limita a realizar a comunicação entre cliente e servidor. É portanto um
núcleo muito mais simples.
Nesta arquitetura, os processos executam suas funções em modo usuário, ou seja, não tem
acesso a instruções privilegiadas, não tem acesso aos componentes do sistema. Apenas o
núcleo executa em modo kernel. Isto garante que caso haja um erro em um processo o
sistema não ficará completamente comprometido. Isso aumenta a disponibilidade do sistema.
6
Vantagens e desvantagens de cada S.O
Vantagens:
Desvantagens:
7
enormes, ocupando salas com racks que abrigavam dezenas de milhares de válvulas (e
consumiam quantidades imensas de energia).
Estas máquinas eram acondicionadas em salas especiais com pessoal especializado para sua
operação. Para executar um job (programa), o programador produzia um conjunto de cartões
perfurados (um cartão por comando do programa), e o entregava ao operador que dava
entrada do programa no computador. Quando o computador completava o trabalho, o
operador devolvia os cartões com a impressão dos resultados ao programador. A maioria dos
computadores de 2ª geração foram utilizados para cálculos científicos e de engenharia. Estes
sistemas eram largamente programados em FORTRAN e ASSEMBLY. Sistemas
operacionais típicos2 eram o FMS (Fortran Monitor Systems) e o IBSYS (IBM's Operating
Systems).
A IBM tentou resolver este problema introduzindo a série System/360. Esta série consistia de
máquinas com mesma arquitetura e conjunto de instruções. Desta maneira, programas
8
escritos para uma máquina da série executavam em todas as demais. A série 360 foi projetada
para atender tanto aplicações científicas quanto comerciais.
Não foi possível para a IBM escrever um sistema operacional que atendesse a todos os
conflitos de requisitos dos usuários. O resultado foi um sistema operacional (OS/360) enorme
e complexo comparado com o FMS. A despeito do tamanho e problemas, o OS/360 atendia
relativamente bem às necessidades dos usuários. Ele também popularizou muitas técnicas
ausentes nos sistemas operacionais de 2ª geração, como por exemplo a multiprogramação.
Outra característica apresentada foi a capacidade de ler jobs dos cartões perfurados para os
discos, assim que o programador os entregasse. Dessa maneira, assim que um job terminasse,
o computador iniciava a execução do seguinte, que já fôra lido e armazenado em disco.
Esta técnica foi chamada spool (simultaneous peripherical operation on line), sendo também
utilizada para a saída de dados. O tempo de espera dos resultados dos programas reduziu-se
drasticamente com a 3ª geração de sistemas. O desejo por respostas rápidas abriu caminho
para o time-sharing, uma variação da multiprogramação onde cada usuário tem um terminal
on-line e todos compartilham uma única CPU. Após o sucesso do primeiro sistema
operacional com capacidade de time-sharing (o CTSS) desenvolvido no MIT, um consórcio
envolvendo o MIT, a GE e o Laboratório Bell foi formado com o intuito de desenvolver um
projeto ambicioso para a época: um sistema operacional que suportasse centenas de usuários
on-line. O MULTICS (MULTiplexed Information and Computing Service) introduziu muitas
idéias inovadoras, mas sua implementação mostrou-se impraticável para a década de
sessenta. O projeto MULTICS influenciou os pesquisadores da Bell que viriam a desenvolver
o UNIX uma década depois.
9
intenção de estudar muito para utilizá-los. Esta foi certamente a maior mudança em relação
ao OS/360 que era tão obscuro que diversos livros foram escritos sobre ele. Dois sistemas
operacionais tem dominado o mercado: MS-DOS (seguido do MS-Windows) para os
computadores pessoais e UNIX (com suas várias vertentes) para as estações de trabalho.
Sistemas operacionais distribuídos são muito mais complexos. Estes sistemas permitem que
os processadores cooperem em serviços intrínsecos de sistemas operacionais tais como
escalonamento de tarefas e paginação. Por exemplo, em um sistema operacional distribuído
uma tarefa pode imigrar durante sua execução de um computador sobrecarregado para outro
que apresente carga mais leve. Contrário aos sistemas operacionais de rede que são
largamente disponíveis comercialmente, sistemas operacionais distribuídos têm sua utilização
ainda restrita.
10
4ª. Geração: com o surgimento das estações de trabalho e dos computadores pessoais, o
desenvolvimento de interfaces gráficas se torna comum. As redes de computadores
impulsionam o surgimento de sistemas operacionais de rede e os sistemas operacionais
distribuídos.
11
Conclusão
Neste trabalho, conclui que um computador moderno é composto de vários subsistemas tais
como processadores, memorias, discos, terminais, fitas magnéticas, interfaces de rede,
impressoras, e outros dispositivos de E/S. Neste ponto de vista, o sistema operacional tem a
função de gerenciar de forma adequada estes recursos de sorte que as tarefas impostas pelos
usuários sejam atendidas da forma mais rápida e confiável possível. Um exemplo típico é o
compartilhamento da unidade central de processamento (CPU) entre as várias tarefas
(programas) em sistemas multiprogramados. O sistema operacional é o responsável pela
distribuição de forma otimizada da CPU entre as tarefas em execução.
Cada máquina virtual é isolada das demais o que proporciona segurança para cada VM. Isto
garante também confiabilidade pois uma VM não pode comprometer o estado das outras
VMs.
A desvantagem desta arquitetura é a grande complexidade. A camada de gerencia de
máquinas virtuais é responsável por compartilhas e gerenciar os recursos do hardware entre
as diversas VMS.
12
Bibliografia
Andrew Tanenbaum. Modern Operating Systems. Massachusetts Addison-Wesley,
1984. ISBN 0-13-595752-4.
Uresh Vahalia. UNIX Internals: The New Frontiers. Prentice Hall, Upper Saddle
River, New Jersey 07458, 1996. ISBN 0-13-101908-2.
Maurice J. Bach. The Design of The UNIX Operating System. Prentice Hall
Software Series, Englewood Cliffs, New Jersey 07632, 1990. ISBN 0-13-201799-7.
13