Aula 1
Sistemas Operacionais
Aula 1
Aula 1 | Slide 1
Sumrio
O que um SO Funes e caractersticas de um SO Evoluo dos SOs Principais arquiteturas de SOs
Aula 1 | Slide 2
| Pg. 1
Aula 1
Funes bsicas de um SO
O SO composto por uma camada de software especial que se interpe entre os aplicativos de usurios e o hardware de um computador
O SO abstrai as especificidades e detalhes do hardware para o usurio final Existem duas formas de interao: CLI e GUI Desde a dcada de 60 o SO evoluiu a uma velocidade sem precedentes, juntamente com o hardware
O software que contem os componentes centrais do SO denominado ncleo (kernel) O SO gerencia os recursos de hardware (HW) e software (SW) de um sistema Primeiro programa a ser instalado
Aula 1 | Slide 3
Linux
Cdigo disponibilizado livremente (aberto) CLI mas cada vez mais oferecendo GUI Gratuito
importante notar que os dois projetos seguem padres da indstria e a intercomunicao entre SOs diferentes torna-se cada vez mais comum nas empresas
Aula 1 | Slide 4
| Pg. 2
Aula 1
Evoluo: Dcadas de 40 e 50
Os primeiros computadores digitais eletrnicos no tinham SOs e eram configurados atravs de lingugem de mquina e comutadores mecnicos Dadas as dificuldades do processo surgiram as perfuradoras de carto e a linguagem assembly No incio dos anos 50 surgiu o processamento em lote de fluxo nico (batch) para atender job O job um conjunto de instrues de programas correspondente a uma tarefa particular Os programadores precisavam controlar recursos diretamente, como memria e E/S Os primeiros SOs eram usados simplesmente para controlar jobs e exigiam de um programa fosse carregado por inteiro na memria para poder executar
Aula 1 | Slide 5
Evoluo: Dcada de 60
Carregamento e execuo simultnea de jobs orientados a processamento e E/S, servindo como base para a multiprogramao Surge a figura do usurio que interage um o computador central on-line atravs de terminais, servindo como base para os sistemas tempo compartilhado (time-sharing), reduzindo de modo drstico o tempo de retorno dos processos Surgem os conceitos de processo, multiprogramao e multiprocessamento Os SOs ganharam caractersticas de processo em lote e tempo real No final da dcada surgem os primeiro SOs que implementam memria virtual
Aula 1 | Slide 6
| Pg. 3
Aula 1
Evoluo: Dcada de 70
Evoluo na eletrnica atravs de VLSI (very large scale integration) que permite miniaturizao e reduo de custos Protocolo TCP/IP se firmando como padro de comunicao por software Redes Ethernet se firmando como tecnologia base de hardware para rede Surgimento das LANs e implementao dos primeiros SORs A comunicao atravs de LAN e WANs chamou a ateno para os problemas de segurana em redes Surgiram as linguagens Pascal e C, empresas como Apple e Microsoft e o processador Intel 8080
Aula 1 | Slide 7
Evoluo: Dcada de 80
Surgimento do conceito de computador pessoal (PC) e estao de trabalho (Workstation) Surgiram as primeiras GUIs e, com isso, o uso e aprendizado do computador se tornou mais fcil Softwares como processador de texto, planilha, aplicativos de BD e aplicativos grficos ajudaram a popularizar o PC e lev-lo para as empresas Aparecimento da arquitetura cliente / servidor e dos primeiros sistemas distribudos SOs multiusurios comeam a aparecer
Aula 1 | Slide 8
| Pg. 4
Aula 1
Evoluo: Dcada de 90
O desempenho continuou a melhorar de forma exponencial: O PC j ganha capacidades de armazenar 1 GB em disco rgido (HD) e executar milhes de instrues por segundo (MIPS) A computao distribuda em computadores de pequeno porte comeou a substituir os sistemas de grande porte, dado o seu alto custo Surgimento do DOS e Windows A tecnologia de orientao a objeto comeou a se tornar popular na programao e, com isso, surgiram os primeiros SOs orientados objetos Os aplicativos ficaram mais sofisticados Cresce o movimento em favor do software livre
Aula 1 | Slide 10
| Pg. 5
Aula 1
Aula 1 | Slide 11
| Pg. 6
Aula 1
Ambientes de SOs
Sistemas de uso geral Sistemas embarcados Sistemas de tempo real Ambientes de misso crtica Mquina virtual (VM) Mquina virtual Java (JVM)
Aula 1 | Slide 13
Contexto do SO
Atravs de uma aplicao, o usurio interage com o SO por meios de seu Shell (tambm conhecido com interpretador de comandos) O SO oferece uma srie de APIs que os aplicativos usam para realizar operaes detalhadas ao nvel de hardware, atravs do ncleo do SO O software que contem os componentes centrais de um SO conhecido como ncleo (ou kernel), sendo as principais rotinas:
Escalonador de Gerenciador de Gerenciador de Gerenciador do Gerenciador de processo memria E/S sistema de arquivos comunicao interprocessos (IPC)
Aula 1 | Slide 14
| Pg. 7
Aula 1
Metas de um SO
No projeto de um SO, alguns fatores podem ser conflitantes e o projetista preciso fazer opes Algumas das caractersticas mais desejadas nos SOs so listadas a seguir:
Baixo custo Estabilidade em condies extremas de uso (robustez) Segurana forte e rastreabilidade Alto desempenho e eficincia Escalabilidade Administrao, suporte e extensibilidade (manutenibilidade) Oferecimento de uma ampla gama de servios e aplicativos Disponibilidade dos servios incorporados (funcionamento redundante ou em cluster) Facilidade de uso e aprendizado (usabilidade) Facilidade para criao de aplicativos e drivers Portabilidade Conformidade com padres internacionais
Aula 1 | Slide 15
Arquiteturas de SO
A arquitetura do SO define como seus diversos componentes se relacionam e interagem O SO um software grande e complexo A arquitetura do SO permite aos projetistas gerenciar a complexidade, definindo a organizao de seus componentes e privilgios de execuo Um SO de mercado pode se enquadrar em uma ou mais dessas arquiteturas A principais arquiteturas encontradas so:
Monoltica Em camadas Microncleo Distribuda atravs de redes
Aula 1 | Slide 16
| Pg. 8
Aula 1
Arquitetura monoltica
Arquitetura mais antiga e mais comum Os componentes do SO so contidos no ncleo e interagem livremente entre si As funes do ncleo tem acesso irrestrito ao hardware No h mudana de modo e, com isso, o sistema tende a ser por um lado mais eficiente mas, por outro lado, tambm mais suscetvel cdigos mal feitos ou maliciosos que esto rodando no modo usurio Difcil de isolar fontes de problemas e erros
Aula 1 | Slide 17
Arquitetura monoltica
Aplicativo Aplicativo Aplicativo
System Call
Mdulo Mdulo Mdulo Mdulo Mdulo Mdulo Mdulo
Hardware
Aula 1 | Slide 18
| Pg. 9
Aula 1
Arquitetura em camadas
Dada a complexidade da arquitetura monoltica, foi criada a arquitetura em camadas e organizar os componentes que realizam tarefas similares Uma camada comunica-se somente com a camada de cima e a camada de baixo Uma camada pode ser modificada sem causar efeitos em outras camadas Camadas de nvel mais baixo prestam servios s de nvel mais alto usando uma interface que oculta sua implementao A requisio de um processo pode ter que passar por vrias camadas, invocando mtodos adicionais de passagem de parmetros entre camadas e, com isso, degradando o desempenho
Aula 1 | Slide 19
Arquitetura em camadas
Aplicativo Aplicativo Aplicativo
System Call
Gerenciamento de E/S Interpretador de mensagem Gerenciamento de memria Alocao de processador e escalonamento de processo
Hardware
Aula 1 | Slide 20
| Pg. 10
Aula 1
Arquitetura de microncleo
Na tentativa de manter o ncleo pequeno e simples, seus servios so reduzidos ao mximo S as principais funes como o gerenciamento de memria e comunicao / sincronizao entre processos so mantidos no ncleo Gerenciamento de processos, dispositivos, rede e sistema de arquivos vo para fora do ncleo e rodam com privilgio mais baixo Como um componente no depende do outro, a falha em um deles menos perceptvel ao SO e aos aplicativos Essa arquitetura de microncleo exibe um alto grau de modularidade, o que a torna portvel, extensvel e escalvel Arquitetura pouco implementada na prtica
Aula 1 | Slide 21
Arquitetura de microncleo
Aplicativo Aplicativo Aplicativo Aplicativo
System Calls
Sistema de arquivos
Escalonador de processos
Gerenciador de dispositivos
Mensagens
GDI
Gerenciador de Rede
Mensagens
Mensagens
Mensagens
Microkernel
Hardware
Aula 1 | Slide 22
| Pg. 11
Aula 1
Arquitetura distribuda
Um sistema operacional distribudo gerencia recursos em mais de um sistema de computador Em vez de simplesmente cooperar com outros computadores em rede, como ocorre nos SORs, os sistemas distribudos, atravs de seus SOs, controlam vrios computadores de uma rede Passam a iluso de que vrios computadores compem um nico computador de grande poder Um processo poder acessar recursos em outros computadores pela rede, independente da sua localizao fsica Requerem algoritmos complicados para permitir comunicao e compartilhamento transparentes Arquitetura muito estudada atualmente
Aula 1 | Slide 23
Arquitetura distribuda
Aula 1 | Slide 24
| Pg. 12
Exerccios
1. (Petrobras 2005) Na arquitetura de um sistema operacional em camadas, o sistema dividido em vrios nveis ou camadas, onde cada camada oferece um conjunto de funes que podem ser utilizadas apenas pelas camadas superiores. Para este tipo de estruturao so consideradas como vantagens: I - isolar as funes do sistema operacional, facilitando sua manuteno e depurao; II - criar uma hierarquia de nveis de modos de acesso, protegendo as camadas mais internas; III - criar um nvel intermedirio entre o hardware e o sistema operacional. Est(o) correta(s) a(s) afirmativa(s): (A) I, apenas. (B) II, apenas. (C) III, apenas. (D) I e II, apenas. (E) I, II e III.
Aula 1 modelos de hardware, suporta multitarefa, processamento multiusurio e redes. Indique a opo que contenha todas as afirmaes verdadeiras. a) I e II b) II e III c) III e IV d) I e III e) II e IV
2. (TCU 2002) Analise as seguintes afirmaes relativas a Sistemas Operacionais: I. O Windows 95 um sistema operacional de 32 bits com uma GUI simplificada, utiliza comandos textuais e limita o uso da memria a programas que requerem menos de 640 Kbytes. Seu substituto, o Windows 98, passou a suportar multitarefa, permitiu um melhor desempenho em rede e facilitou o acesso internet; II. O Windows NT surgiu como um sistema operacional de 32 bits, existente em duas verses, uma para servidor de rede e outra para computadores ligados rede, pode suportar mais de uma CPU e no est limitado a processadores da Intel; III. O DOS um sistema operacional para PCs IBM e compatveis. Pode beneficiar-se do multiprocessador de 32 bits, suporta multitarefas e redes, e pode executar grandes programas que exigem mais de 640 Kbytes de memria; IV. O UNIX um sistema operacional para PCs poderosos, workstations e minicomputadores, utilizvel em diferentes
3. (TCU 2002) Analise as seguintes afirmaes relativas a sistemas distribudos: I. Um sistema distribudo uma coleo de processadores que compartilham memria. II. Um sistema distribudo uma coleo de processadores fracamente acoplados interconectados por uma rede de comunicao. Do ponto de vista de um processador especfico em um sistema distribudo, os demais processadores e seus respectivos recursos so remotos, enquanto seus prprios recursos so locais. III. Em um sistema operacional distribudo, os usurios acessam recursos remotos da mesma forma que fazem com os recursos locais. IV. A grande desvantagem de um sistema distribudo que, como acontece na Internet, se um site falhar os outros sites envolvidos tambm iro parar. Indique a opo que contenha todas as afirmaes verdadeiras. a) I e II b) II e III c) III e IV d) I e III e) II e IV
4. (TCU 2002) Analise as seguintes afirmaes relativas a sistemas operacionais distribudos: I. Um sistema distribudo pode ser definido como uma coleo de processadores fracamente acoplados, interconectados por uma rede de comunicao.
| Pg. 13
Sistemas Operacionais - ACP II. Um sistema distribudo pode ser definido como uma coleo de processadores que no compartilham memria nem relgio. III. Um sistema distribudo pode ser definido pela capacidade que um nico processador tem para distribuir vrias tarefas simultaneamente. IV. Em um sistema operacional distribudo os usurios s podem acessar recursos locais. Indique a opo que contenha todas as afirmaes verdadeiras. a) I e II b) II e III c) III e IV d) I e III e) II e IV
Aula 1 7. Um sistema que apresenta paralelismo macio _____________ . a) possui um processador que executa partes distintas do processamento ao mesmo tempo b) possui um grande nmero de processadores que executam partes distintas do processamento de modo simultneo c) comunica-se atravs de uma rede e distribui as tarefas entre vrios computadores independentes d) NRA
5. So vantagens de um sistema distribudo: I. Eles comportam-se como se fossem um nico computador de grande desempenho II. Um processo poder acessar quaisquer recursos do sistema, independente de onde eles estiverem sendo executado II Sua implementao fcil e rpida Indique a opo que contenha todas as afirmaes verdadeiras. a) I ,II e III b) I e II c) I e III d) II e III
8. O conjunto de rotinas de software que contem as principais funes de um SO chamado de? a) controlador b) ULA c) kernel d) driver
6. Um sistema operacional _________ pode ser adaptado com facilidade s novas tecnologias e pode ser modificado para executar tarefas alm do seu projeto original; j um sistema operacional __________ projetado falhar o mnimo possvel e tambm no permitir que um programa mal comportado desestabilize seu funcionamento. a) robusto / portvel b) extensvel / portvel c) escalvel / extensvel d) extensvel / robusto
Gabarito
Exerccio 1 2 3 4 5 6 7 8 Resposta D E B A B D B C
| Pg. 14