Vous êtes sur la page 1sur 157

Sistemas Operacionais

Prof. Douglas Machado http://www.douglasmachado.com professor@douglasmachado.com v. 20110204

Sistemas Operacionais

Sobre o professor

Pesquisador no NP2TEC/UNIRIO (desde 2009) Professor na FES/JF (desde 2007) Coordenador do curso de Tecnologia em Redes de Computadores (desde 2010) Analista de sistemas em empresa privada (1999-2011) Certificado em Qualidade de Software (PROQUALITI) Mestrando em Informtica (UNIRIO) Especialista em Melhoria de Proc. de Software (UFLA) Tecnlogo em Processamento de Dados (CES/JF) Tcnico em Informtica Industrial (UFJF/CTU)

Sistemas Operacionais

Por que estudar sistemas operacionais:?


Muitas mudanas tm ocorrido na rea de TI Computao ubqua: os computadores esto cada vez mais presentes em nossas vidas: em casa, no trabalho, nos estudos, no lazer, no governo Grande quantidade de equipamentos: desktops, servidores, smartphones, notebooks, netbooks, tablets, consoles de games... Os sistemas operacionais so fundamentais para o funcionamento da maioria desses equipamentos Apesar das rpidas mudanas nos sistemas operacionais, os conceitos fundamentais continuam os mesmos

Sistemas Operacionais

Contextualizao da disciplina
Ensinar os fundamentos de sistemas operacionais Relacionar os fundamentos a tarefas e problemas conhecidos nas implementaes mais usuais Possibilitar a soluo de problemas com fundamentao terica Possibilitar a soluo de problemas fazendo bom uso das caractersticas de cada sistema Fornecer grau de conhecimento que diferencie profissionais com uma formao adequada dos demais

Sistemas Operacionais

Ementa
Conceitos fundamentais de Sistemas Operacionais Relaes entre os sistemas operacionais conhecidos e respectiva classificao Conceitos de unidade de alocao Carga e execuo de um programa (processos e threads) Concorrncia e sincronizao entre processos Mecanismos de gerncia de recursos Sistema de arquivos

Sistemas Operacionais

Objetivos gerais
Compreender os conceitos e caractersticas dos Sistemas Operacionais Relacionar as atividades executadas pelo processador e demais componentes de um sistema de computao Compreender os componentes necessrios ao projeto dos sistemas operacionais Relacionar os mdulos de um sistema operacional com as atividades exercidas pelo usurio

Sistemas Operacionais

Objetivos especficos
Classificar adequadamente um sistema operacional Compreender os conceitos e estados de processos e threads Entender os mecanismos de alocao do processador Identificar problemas de concorrncia Identificar problemas de alocao de memria Entender os princpios de funcionamento de memria virtual Relacionar as atividades do sistema com questes de desempenho Entender o funcionamento de dispositivos de E/S Entender a interface de dispositivos de E/S com o usurio e com o sistema operacional Implementar regras de segurana de arquivos

Sistemas Operacionais

Unidades
Unidade I - Introduo a Sistemas Operacionais Unidade II - Processos Unidade III Gerncia de processador Unidade IV - Gerncia de Memria Unidade V - Gerncia de Entrada e Sada Unidade VI - Sistema de Arquivos

Sistemas Operacionais

Unidade I Introduo a Sistemas Operacionais


Conceitos Fundamentais de Sistemas Operacionais Evoluo Histrica dos Sistemas Operacionais Classificao de Sistemas Operacionais Interrupes Conceitos de concorrncia Estruturas dos Sistemas Operacionais

Sistemas Operacionais

Unidade II Processos
Conceito de Processo Estados de um processo Threads Comunicao entre Processos Sincronizao entre Processos

Sistemas Operacionais

Unidade III Gerncia de Processador


Fundamentos Critrios de Escalonamento FCFS Prioridade SJF Round Robin (Circular) Mltiplas filas com realimentao Clculo estimado de tempo de resposta

Sistemas Operacionais

Unidade IV Gerncia de Memria


Funes Espao de Endereamento Fsico e Lgico Estratgias de alocao Memria Virtual

Sistemas Operacionais

Unidade V Gerncia de Entrada e Sada


Subsistemas de entrada e sada Componentes de hardware de E/S Componentes de Software de E/S

Sistemas Operacionais

Unidade VI Sistema de Arquivos


Conceitos de Arquivos e Diretrios Mtodos alocao Gerncia de espaos livres Proteo de acesso

Sistemas Operacionais

Bibliografia
Ttulo : Arquitetura de Sistemas Operacionais Autores : Francis Berenger Machado e Luiz Paulo Maia Editora : LTC Ano: 2007 Edio: 4 Ttulo : Fundamentos de Sistemas Operacionais Autores : Silberschatz, Galvin e Gagne Editora : LTC Ano: 2009 Edio: 6

Sistemas Operacionais

Mapa conceitual
<arquivo anexo>

Sistemas Operacionais

Relao com outras disciplinas


Organizao de Computadores Algoritmos

Sistemas Operacionais

Datas das avaliaes


AV1: AV2: AV3:

Unidade I Introduo a Sistemas Operacionais

Objetivos
Compreender as funes de um sistema operacional Entender a posio que um sistema operacional ocupa em um sistema computacional Conhecer os componentes de um sistema operacional Conhecer a evoluo histrica dos sistemas operacionais Diferenciar os tipos de sistemas operacionais existentes Compreender a importncia de conhecer o funcionamento de um sistema operacional para soluo de problemas

Unidade I Introduo a Sistemas Operacionais

Conceitos fundamentais de sistemas operacionais


Conjunto de rotinas executado pelo processador Conjunto de programas responsvel pela gerncia de recursos (hardware, segurana de acesso e utilizao, interface com usurio) Atua como uma interface entre o usurio e o computador (torna a utilizao do computador mais fcil e segura) Sem um sistema operacional um usurio precisaria conhecer profundamente detalhes sobre o hardware

Conceitos fundamentais de sistemas operacionais

Componentes bsicos
Interface com usurio Gerncia de processador Gerncia de memria Gerncia de dispositivos Sistema de arquivos

Componentes avanados
Segurana de acesso Ferramentas de auditoria

Conceitos fundamentais de sistemas operacionais

Funes bsicas:
Facilitar acesso aos recursos do sistema Compartilhar recursos de forma organizada e protegida

Conceitos fundamentais de sistemas operacionais


p rog r am a do res e a na lista s u su rios p rog r am a s, sistem as e ap lica tivos

U su r ios

Sistem a O p eracio na l

m em r ia H ar dw ar e U CP

d iscos

fitas

im pr essora s

m o nitor es

Conceitos fundamentais de sistemas operacionais


Aplicativos

Utilitrios

Sistema Operacional

Linguagem de Mquina

Microprogramao

Circuitos Eletrnicos

Evoluo histrica dos sistemas operacionais

Intimamente ligada evoluo dos computadores Antes da dcada de 1940:


1642: Blaise Pascal (matemtico francs) inventou uma mquina de somar 1673: Gottfried Leibniz (matemtico e filsofo alemo) criou uma mquina capaz de somar e multiplicar 1820: Charles Colmar (francs) inventou uma mquina capaz de executar as quatro operaes 1822: Charles Babbage (matemtico ingls) inventou uma mquina para clculo de equaes polinomiais 1833: Charles Babbage (matemtico ingls) aprimora a mquina anterior para executar qualquer tipo de operao

Evoluo histrica dos sistemas operacionais


1854: George Boole (matemtico ingls) criou a lgica booleana (base para o modelo de computao digital da dcada de 1940) 1890: Herman Hollerith (fundador da IBM) cria os cartes perfurados 1896: fundou a Tabulating Machine Company 1924: mudou de nome para International Business Machine (IBM) 1930: primeiras tentativas de se criar calculadoras eletrnicas

Evoluo histrica dos sistemas operacionais

Dcada de 1940:
Primeiros computadores eletromecnicos (calculadoras) Eram formados por milhares de vlvulas Ocupavam reas enormes Lentos e de funcionamento duvidoso Utilizados basicamente para aplicaes militares (clculos matemticos)

Evoluo histrica dos sistemas operacionais

Mark I

Evoluo histrica dos sistemas operacionais

ENIAC

Evoluo histrica dos sistemas operacionais

EDSAC

Evoluo histrica dos sistemas operacionais

Outros:
EDVAC ORDVAC ELLIAC WEIZAC

Evoluo histrica dos sistemas operacionais

Caractersticas mais comuns dos computadores da poca


Para utiliz-los era preciso conhecer profundamente o hardware A programao era feita em painis, atravs de milhares de conectores, utilizando linguagem de mquina Clculos que levariam 24 horas para serem feitos manualmente eram feitos em questo de segundos Programar clculos simples era uma atividade que poderia durar dias No possuiam dispositivos de interface com usurio (teclado, monitor, mouse...) No existia o conceito de sistema operacional

Evoluo histrica dos sistemas operacionais

Dcada de 1950:
Transistor substitui vlvula e memria magntica passa a ser usada: Processamento mais rpido e confivel Acesso a dados mais rpido Maior capacidade de armazenamento Computadores menores Empresas da poca: Raytheon, RCA, Burroughs e IBM Programas passam a ser perfurados em cartes, ao invs de serem codificados diretamente na mquina

Evoluo histrica dos sistemas operacionais

Evoluo histrica dos sistemas operacionais


Incio do processamento batch Programas eram escritos em cartes perfurados Leitoras liam os cartes e gravavam em fita magntica As fitas eram lidas e processadas, sendo os resultados gravados em outra fita Os resultados eram ento impressos

Evoluo histrica dos sistemas operacionais


job n (a) job 2 job 1 cartes perfurados P rocessamento fita de entrada

(b) fita de entrada

P rocessamento fita de sada

relatrio n

(c) fita de sada

P rocessamento

relatrio 2 relatrio 1

relatrios

Evoluo histrica dos sistemas operacionais


Principal vantagem: programas no precisavam ser submetidos um a um (com isso o processador ficava menos tempo ocioso) 1953 Criao do primeiro sistema operacional Desenvolvido pela General Motors (eram usurios do IBM 701) Objetivo: automatizar tarefas manuais Surgimento das primeiras linguagens de programao altonvel FORTRAN ALGOL COBOL Programas deixam de ter ligao direta com o hardware dos computadores (facilidade e agilidade na criao de programas)

Evoluo histrica dos sistemas operacionais

Linguagens de programao evoluem Sistemas operacionais evoluem: Facilitao do trabalho de codificao, submisso, execuo e depurao de programas SOs passam a ter seu prprio conjunto de rotinas para operaes de E/S Programadores no precisam mais implementar rotinas de leitura/gravao para cada tipo de hardware (independncia de dispositivos) Sistemas operacionais da poca: SOS (SHARE Operating System), FMS (FORTRAN Monitor System) e IBSYS (todos para mquinas IBM)

Evoluo histrica dos sistemas operacionais

Dcada de 1960:
Reduo dos custos: difuso de computadores nas empresas (antes restritos a aplicaes militares e governamentais) Aumento de poder de processamento e diminuio de tamanho dos computadores Introduo das tcnicas de multiprogramao, multiprocessamento, time-sharing e memria virtual Substituio de fitas (sequenciais) por discos magnticos: a ordem de execuo dos programas batch pode ser facilmente alterada

Evoluo histrica dos sistemas operacionais


Sistemas operacionais da poca: MCP (Master Control Program) para o computador B-5000 (Burroughs): multiprogramao e memria virtual. OS/360 para System/360 (IBM), que fazia uso de arquitetura escalonvel: multiprogramao, sistema on-line, time-sharing. CTSS (MIT) para o IBM 7094: tempo compartilhado. Unix (Ken Thompson) para PDP-8 (DEC) // o Unix ainda no era conhecido por este nome Introduo de novos dispositivos de E/S: terminal de vdeo e teclado

Evoluo histrica dos sistemas operacionais

Dcada de 1970:
Principal SO: CP/M (Control Program Monitor), da Digital Research Surgimento dos microprocessadores Surgimento dos microcomputadores Destaque para a criao da Apple e da Microsoft Criao da linguagem de programao PASCAL Criao da linguagem de programao C

Evoluo histrica dos sistemas operacionais

Dcada de 1980:
IBM entra na briga pelo mercado de PCs, com o IBM PC, utilizando o sistema operacional DOS, comercializado pela Microsoft (muito semelhante ao CP/M) Difuso de sistemas multiusurio Universidade de Berkeley desenvolve sua prpria verso do UNIX (BSD Berkeley Software Distribution) Destaque para a criao do protocolo TCP/IP Principais Sos da poca DOS (Microsoft) SunOS (Sun) Sun Solaris (Sun) Windows (Microsoft): interface grfica OS/2: interface grfica

Evoluo histrica dos sistemas operacionais

Dcada de 1990:
Consolidao dos SOs baseados em interface grfica Difuso das famlias Windows, Unix e Linux Difuso do softwara aberto (MySQL, Apache, Linux...) Consolidao de SOs para ambientes corporativos: Windows NT e Unix (HP-UX, IBM-AIX, Sun Solaris)

Evoluo histrica dos sistemas operacionais

Evoluo histrica dos sistemas operacionais

Dcada de 2000:
Evoluo do multiprocessamento Introduo do conceito de processamento distribudo Sistemas operacionais cada vez mais simples e intuitivos Forte uso de linguagem natural, som e imagem

Tipos de sistemas operacionais

2010 em diante: possivelmente haver grande propagao de sistemas operacionais para dispositivos mveis

Evoluo histrica dos sistemas operacionais

Tipos de sistemas operacionais

T o d ip s e S te a O e c na is m s p ra io is

S te a is m s M no ro o p gram ve / is M no re o ta fa

S te a is m s M ltip gra e / u ro m v is M ltita fa u re

S te a is m s c omM ltip s lo P c s a re ro e s do s

Tipos de sistemas operacionais

Monoprogramveis/monotarefa:
Gerenciam apenas uma tarefa por vez Todos os recursos computacionais (CPU, memria e dispositivos de E/S) so alocados para um nico programa Mesmo que o processador esteja ocioso aguardando por uma operao de E/S (digitao/impresso de um dado, por exemplo), nenhum outro programa executado Foram utilizados nos primeiros computadores da dcada de 1960 e voltaram a ser usados nos computadores pessoais da dcada de 1970

Tipos de sistemas operacionais

UCP

programa/ tarefa

Memria Principal

Dispositivos de E/ S

Tipos de sistemas operacionais

Multiprogramveis/multitarefa:
Antes o processador ficava ocioso enquanto aguardava pela leitura ou gravao em um dispositivo de E/S Em sistems multiprogramveis os recursos computacionais so utilizados por diferentes programas Quando o processador est ocioso (geralmente aguardando por uma operao de E/S), outro programa pode ser processado Garantem um uso muito mais otimizado dos recursos do que os sistemas monotarefa, entretanto sua implementao muito mais complexa

Tipos de sistemas operacionais


Podem ser monousurio ou multiusurio Monousurio: apenas um usurio interage com o sistema por vez Multiusurio: mais de um usurio pode interagir com o sistema simultaneamente

Tipos de sistemas operacionais

programa/ tarefa

UCP

programa/ tarefa

Memria Principal

Dispositivos de E/ S

programa/ tarefa

programa/ tarefa

programa/ tarefa

Tipos de sistemas operacionais

Tipos de sistemas operacionais

Sistemas batch:
So tambm sistemas multitarefa Foram implementados no incio da dcada de 1960 Os programas (tambm conhecidos como jobs) eram submetidos execuo atravs de cartes perfurados e armazenados em disco ou fica Em seguida os programas aguardavam sua execuo As sadas eram gravadas em outra fita Nesses sistemas a interao com o usurio no era necessria

Tipos de sistemas operacionais

Sistemas de tempo compartilhado:


So tambm sistemas multitarefa O tempo de uso do processador dividido igualmente para diferentes programas Cada programa tem sua fatia de tempo (time-slice) Se a time-slice no for suficiente, o programa em execuo substitudo por outro e fica aguardando sua prxima execuo Tem-se a impresso de que o sistema est totalmente alocado para um determinado programa, quando na verdade o tempo est sendo compartilhado

Tipos de sistemas operacionais

Sistemas on-line:
So tambm sistemas multitarefa Permitem a interao com o usurio Normalmente o tempo de resposta para o usurio baixo

Tipos de sistemas operacionais

Sistemas de tempo real:


So tambm sistemas multitarefa Semelhante ao sistema de tempo compartilhado, entretanto no existe o conceito de time-slice Um programa utiliza o processador o tempo que for necessrio, at que haja algum programa com prioridade maior Geralmente esto presentes em sistemas de misso crtica, como refinarias de petrleo, controle de trfego areo, usinas termoeltricas e nucleares....

Tipos de sistemas operacionais

Sistemas com mltiplos processadores


Tambm chamados de multiprocessados So sistemas que tm a capacidade de gerenciar mais de um processador simultaneamente Diferentes programas podem fazer uso de diferentes processadores O mesmo programa pode fazer uso de mais de um processador Tem os mesmos benefcios dos sistemas multiprogramados

Tipos de sistemas operacionais

Tipos de sistemas operacionais

Tipos de sistemas operacionais

Tipos de sistemas operacionais


Principais vantagens: Escalabilidade: aumenta-se o poder de processamento simplesmente aumentando-se a quantidade de processadores Disponibilidade: se um processador tem seu funcionamento interrompido, o trabalho desviado para os demais

Famlia Windows
Verso Windows 1.0 Data 1985 Verso Windows NT Server 4.0 Data 1996

Windows 2.03
Windows 2.86 Windows 3.0 Windows 3.1

1987
1989 1990 1992

Windows 98
Windows 2000 Windows 2000 Server Windows Me Windows XP

1998
2000 2000 2000 2001

Windows NT 3.1 1993

Windows 3.11
Windows 3.51 workstation Windows 95 Windows NT 4

1993
1995 1995 1996

Windows Server 2003


Windows Vista Windows 7

2003
2006 2009

Windows 1.01 (1985)

Windows 2.03 (1987)

Windows 3.0 (1990)

Windows 3.1 (1992)

Windows NT 3.11 (1993)

Windows NT 3.11 (1993)

Windows NT 3.51 Workstation (1995)

Windows 95 (1995)

Windows NT 4.0 (1996)

Windows NT Server 4.0 (1996)

Windows 98 (1998)

Windows 2000 (2000)

Windows 2000 Server (2000)

Windows Me (2000)

Windows XP (2001)

Windows 2003 Server (2003)

Windows Vista (2006)

Windows 7(2009)

Unidade I: conceitos, evoluo e classificao dos SOs

Reviso
1. Ao longo do curso foram apresentadas diferentes definies para sistemas operacionais. Neste contexto, defina o que voc compreendeu por ser um sistema operacional. 2. De acordo com o que foi estudado, um sistema operacional desempenha duas funes fundamentais para os sistemas computacionais. Descreva e explique essas funes. 3. Explique a diferena entre sistemas operacionais monotarefa e multitarefa. 4. Explique a diferena entre sistemas monousurio e multiusurio. 5. No contexto de sistemas operacionais, multitarefa tem o mesmo significado que multiprocessado? Explique. 6. Pode-se dizer que todo sistema operacional multiusurio multitarefa? Explique. 7. Um sistema multitarefa , necessariamente, um sistema multiusurio? Explique.

Unidade I: conceitos, evoluo e classificao dos SOs


8. Dentre os tipos de sistemas operacionais foi apresentado o sistema operacional de tempo real. Quais so as caractersticas desse tipo de sistema? 9. correto dizer que em sistemas multitarefa a execuo de diferentes programas simultnea? Explique. 10.Explique como um usurio faria uso de um computador que no fosse dotado de um sistema operacional 11.Quais seriam as principais dificuldades de um programador no desenvolvimento de uma aplicao para um computador que no tivesse um sistema operacional? 12.Pode-se dizer que em sistemas monoprogramados h subutilizao de recursos? Explique. 13.Um sistema monousurio pode ser, ao mesmo tempo, multitarefa? Explique.

Unidade I: Introduo a Sistemas Operacionais

Conceitos de concorrncia Interrupes Estruturas dos sistemas operacionais

Unidade I: concorrncia, interrupes e estrutura

Objetivos
Compreender os fundamentos de sistemas concorrentes Entender a importncia e o funcionamento dos mecanismos de interrupo Identificar as estruturas existentes de sistemas operacionais Entender o funcionamento de uma chamada ao sistema (system call)

Unidade I: concorrncia, interrupes e estrutura

Concorrncia
Segundo Pinkert (1990), sistema operacional pode ser definido comoconjuntoderotinasexecutadasdeformaconcorrentee ordenada Desta forma, o conceito de concorrncia fundamental para a implementao da multiprogramao Possibilita que instrues sejam executadas ao mesmo tempo que outras operaes (ex.: E/S)

Unidade I: concorrncia, interrupes e estrutura

Monoprogramao x multiprogramao

E /S

E /S

U P C

liv re

U P C

te p mo (a) S te a M no ro is m o p gram e v l (b) S te a M ltip gram v l is m u ro e

te p mo

Unidade I: concorrncia, interrupes e estrutura


Em sistemas monoprogramveis, perdia-se muito tempo de processamento durante as operaes de E/S Operaes de E/S so muito mais lentas do que operaes de processamento

Unidade I: concorrncia, interrupes e estrutura


Exemplo de utilizao do sistema
Leitura de um registro Execuo de 100 instrues TOTAL % de utilizao da CPU 0,0015s 0,0001s 0,0016s (0,0001/0,0015s) = 0,066 = 6,6%

Unidade I: concorrncia, interrupes e estrutura


No s o processador que subutilizado em sistemas monoprogramveis: memria e dispositivos de E/S (como discos, impressoras e etc.) tambm so Destaca-sequeumatarefapodedeixaraCPUporvontade prpria(quandoaguardaumaoperaodeE/S,porexemplo) ou por uma interrupo

Unidade I: concorrncia, interrupes e estrutura

Interrupes e excees
Durante a execuo de um programa podem ocorrer eventos inesperados Esses eventos podem causar um desvio forado no fluxo de execuo de um programa Tais eventos so conhecidos por interrupo ou exceo

Unidade I: concorrncia, interrupes e estrutura


Uma interrupo independe da instruo que est sendo executada sempre gerada por algum evento externo ao programa So as interrupes que permitem que o sistema operacional sincronize diferentes atividades, como rotinas, programas dos usurios e dispositivos

Unidade I: concorrncia, interrupes e estrutura


Exemplo: SuponhaqueoProg.2estejafazendousodoprocessador enquantooProg.1fazusodeumaimpressora Quando a impresso terminar, o processador precisa ser avisadodessaoperao Neste momento tem-se a interrupo

Unidade I: concorrncia, interrupes e estrutura


Ao final da execuo de cada instruo, a unidade de controle verifica se ocorreu alguma interrupo Em caso positivo, o programa em execuo interrompido e o controle desviado para uma rotina de tratamento de interrupo Importante: para que o programa anterior interrupo possa voltar a ser executado necessrio que algumas informaes sejam preservadas (basicamente, o contedo dos registradores)

Unidade I: concorrncia, interrupes e estrutura

Unidade I: concorrncia, interrupes e estrutura


Parte da interrupo executada via hardware, parte via software Interrupo passo a passo: VIA HARDWARE: 1.Um sinal de interrupo gerado para o processador 2.O processador termina de executar a instruo corrente 3.O processador identifica o pedido de interrupo 4.Os contedos dos registradores (PC e de status) so salvos 5.O processador identifica qual rotina de tratamento que ser executada 6.O registrador PC carregado com o endereo da rotina de tratamento de interrupo

Unidade I: concorrncia, interrupes e estrutura


VIA SOFTWARE: 1.A rotina de tratamento salva o contedo dos demais registradores do processador na pilha de controle do programa 2.A rotina de tratamento executada 3.A rotina de tratamento termina e restaura todos os registradores (PC, status e uso geral) 4.O programa interrompido retoma o uso do processador a partir de onde parou

Unidade I: concorrncia, interrupes e estrutura


Para cada tipo de interrupo existe uma rotina de tratamento O fluxo de execuo sempre desviado para a rotina correspondente No momento da interrupo o processador deve saber para qual rotina desviar o fluxo

Unidade I: concorrncia, interrupes e estrutura


Lembra-se dos conflitos de IRQ, comuns em verses antigas do Windows?

Unidade I: concorrncia, interrupes e estrutura


As interrupes so decorrentes de eventos assncronos (que no tm relao com o programa que est em execuo) Esses eventos so imprevisveis e podem ocorrer inmeras vezes (ex: diferentes dispositivos de E/S informam ao processador que esto prontos para serem execu

Unidade I: concorrncia, interrupes e estrutura


As interrupes so decorrentes de eventos assncronos (que no tm relao com o programa que est em execuo) Esses eventos so imprevisveis e podem ocorrer inmeras vezes (ex: diferentes dispositivos de E/S informam ao processador que esto prontos para serem executados novamente) Dessa forma, pode acontecer de diferentes pedidos de interrupo serem gerados ao mesmo tempo Algumas rotinas de tratamento de interrupo inibem outros pedidos de interrupo quando alguma rotina de tratamento est sendo executada (mascaramento de interrupes) Outra maneira controlar as interrupes por prioridades atravs do controlador de pedidos de interrupo (interrupes em cascata)

Unidade I: concorrncia, interrupes e estrutura


Excees resultado direto da execuo do prprio programa Parte de um evento sncrono, e no de um evento assncrono Eventos sncronos so previsveis e s podem acontecer um de cada vez Se um programa for executado novamente com a mesma entrada de dados, a mesma exceo ser gerada na mesma instruo Exemplos: diviso por zero, overflow

Unidade I: concorrncia, interrupes e estrutura


O mecanismo de tratamento de exceo bem semelhante ao tratamento de interrupes A maior diferena que o prprio programador pode escrever o mecanismo de tratamento de excees Isso evita que o programa ser encerrado caso ocorra uma exceo Em PASCAL pode-seusarafunotry/except,conforme exemplo a seguir

Unidade I: concorrncia, interrupes e estrutura


Program divisor;
var R1, R2: Double; begin Try Write('Digite um nmero: '); ReadLn(R1); Write('Digite outro nmero: '); ReadLn(R2); Writeln('Resultado da diviso do primeiro pelo segundo nmero:', R1/R2); except On EZeroDivide do Writeln('Voc no pode dividir por zero!'); On EInOutError do Writeln('Este no um nmero vlido!'); end; end.

Unidade I: concorrncia, interrupes e estrutura


Aplicativos

Utilitrios

Ncleo do Sistema Operacional

Hardware

Unidade I: concorrncia, interrupes e estrutura


Funes do kernel Tratamento e interrupes e excees Criao e eliminao de processos e threads Sincronizao e comunicao entre processos e threads Escalonamento e controle de processos e threads Gerncia de memria Gerncia do sistema de arquivos Gerncia de dispositivos de E/S Suporte a redes locais e distribudas Contabilizao do uso do sistema Auditoria e segurana do sistema

Unidade I: concorrncia, interrupes e estrutura


Osproblemasdamultiprogramao Diversos usurios compartilham os mesmos recursos (memria, processador e dispositivos de E/S) Como garantir a confiabilidade na execuo concorrente de todos os programas? Como garantir a confiabilidade nos dados dos usurios? Como garantir a integridade do prprio sistema operacional? Vrios programas fazendo uso do processador Comoimpedirqueumprogramamonopolizeousodo processador?

Unidade I: concorrncia, interrupes e estrutura


Vrios programas ocupam a memria simultaneamente Como garantir para que cada programa tenha sua rea reservada na memria, para armazenamento do cdigo e dos dados? Se um programa tentar acessar uma posio de memria fora de sua rea, deve ser emitido um erro de violao de acesso

Unidade I: concorrncia, interrupes e estrutura


Para que diferentes programas acessem a mesma rea de memria o sistema operacional deve prover mecanismos para essa atividade, que deve ser sincronizada e controlada Um disco pode armazenar arquivos de diferentes usurios Como garantir a integridade dos dados? Como garantir a confidencialidade dos dados? Como permitir que mais de um usurio tenha acesso ao mesmo arquivo? Todos esses problemas originados da multiprogramao so tratados atravs dos mecanismos de proteo do sistema operacional (que controlam o acesso concorrente a diversos recursos do sistema)

Unidade I: concorrncia, interrupes e estrutura


Modo usurio Programas s podem executar instrues no-privilegiadas concedido acesso a um nmero reduzido de instrues Modo kernel Acesso ao conjunto total de instrues do processador Para que uma aplicao execute instrues privilegiadas (como gravar um arquivo em disco ou iniciar um novo processo) necessrio que o modo usurio seja alterado de usurio para kernel Determinao do modo de acesso: O modo de acesso corrente determinado em um conjunto de bits localizado no registrador de status do processador o prprio hardware, atravs desse dispositivo, que verifica o modo de acesso antes de executar uma instruo

Unidade I: concorrncia, interrupes e estrutura


Uma aplicao s pode executar rotinas do SO atravs das system calls

S s mC ll y te a

N le d c o o S te a O ra io is m pe c nal
H rd a a w re

A lic p a o

B iblio c te a

Unidade I: concorrncia, interrupes e estrutura


Etapas Uma aplicao deseja chamar uma rotina do SO O mecanismo de system call ativado O SO verifica se a aplicao possui os privilgios necessrios para executar a rotina do SO desejada A partir da a aplicao pode possuir ou no o privilgio necessrio

Unidade I: concorrncia, interrupes e estrutura


1o caso: a aplicao no possui o privilgio necessrio O SO impedir o desvio para a rotina do sistema O programa que solicitou acesso rotina informado da negao do pedido Este um mecanismo de proteo por software O SO garante que aplicaes s podero executar rotinas do SO que estejam devidamente autorizadas O mecanismo de autorizaes ser visto mais adiante

Unidade I: concorrncia, interrupes e estrutura


2o caso: a aplicao possui o privilgio necessrio O SO salva o contedo corrente dos registradores O SO troca o modo de acesso do processador de usurio para kernel O SO realiza o desvio para a rotina (alterando o registrador PC para o endereo da rotina chamada) Ao trmino da execuo da rotina o modo de acesso retorna a usurio O contexto dos registradores restaurado A aplicao continua a execuo a partir da instruo que chamou a rotina do sistema

Unidade I: concorrncia, interrupes e estrutura

Unidade I: concorrncia, interrupes e estrutura


Proteo por hardware Uma aplicao sempre deve ser executada com o processador em modo usurio Se uma aplicao tentar executar uma instruo privilegiada diretamente (sem ser atravs de uma system call) o mecanismo de proteo por hardware garantir a proteo do sistema O prprio hardware do processador sinalizar um erro Uma exceo gerada e a execuo do programa interrompida Esse mecanismo visa proteger o ncleo do sistema

Unidade I: concorrncia, interrupes e estrutura


Funes das system calls Gerncia de processos e threads Criao e eliminao de processos e threads Alterao das caractersticas de processos e threads Sincronizao e comunicao entre processos e threads Obteno de informaes sobre processos e threads Gerncia de memria Alocao e desalocao de memria Gerncia do sistema de arquivos Criao e eliminao de arquivos e diretrios Alterao das caractersticas de arquivos e diretrios Abrir e fechar arquivos Leitura e gravao em arquivos Obteno de informaes sobre arquivos e diretrios

Unidade I: concorrncia, interrupes e estrutura


Cada sistema operacional possui seu prprio conjunto de rotinas Nomes, parmetros e formas de ativao so especficos Dessa forma, uma aplicao desenvolvida para utilizar chamada a rotinas de um determinado sistema operacional no pode ser portada diretamente para outro sistema

Unidade I: concorrncia, interrupes e estrutura


GetSystemTime (SystemTime); DataHoraT := SystemTimeToDateTime(SystemTime); DataHoraS := DateTimeToStr(DataHoraT); RichEdit1.Lines.Add(DataHoraS);

- A API GetSystemTime obtm a data e hora do MS Windows - A funo SystemTimeToDateTime converte a data e a hora para o formato DataHoraT do Delphi - A funo DateTimeToStr converte para o formato texto - A ltima linha exibe a data e a hora em uma janela

Unidade I: concorrncia, interrupes e estrutura


POSIX (Portable Operating System Interface for Unix) Tentativa de criao de uma biblioteca de chamadas padro Inicialmente criado para unificao das vrias verses do Unix Atualmente a maioria dos SOs oferece algum suporte (Windows, IBM-AIX, HP-UX, Sun Solaris)

Unidade I: concorrncia, interrupes e estrutura


Linguagem de comandos Trata-se de mais uma camada na estrutura do sistema operacional Permite que o usurio se comunique diretamente com o sistema operacional Cada comando interpretado pelo interpretador de comandos (shell, no Linux) Em geral, no faz parte do ncleo do sistema operacional

Unidade I: concorrncia, interrupes e estrutura


Alguns comandos Windows ASSOC Mostra ou modifica as associaes feitas s extenses de arquivos Digitar apenas ASSOC mostra todas as associaes Digitar ASSOC .bmp mostra o programa associado extenso .bmp Digitar ASSOC .bmp = Imagem Paint associa ImagemPaintextenso.bmp

Unidade I: concorrncia, interrupes e estrutura


ATTRIB Exibe ou modifica os atributos de um arquivo Digitar ATTRIB arquivo.extenso mostrar os atributos de um arquivo especfico Digitar apenas ATTRIB mostrar os atributos de todos os arquivos do diretrio corrente Parmetros R read only (somente leitura) A arquive (arquivo) S system file (arquivo de sistema) H hidden (oculto) + acrescenta um atributo - remove um atributo Exemplo: ATTRIB + R teste.txt (torna o arquivo teste.txt somente leitura)

Unidade I: concorrncia, interrupes e estrutura


BCDEDIT Gerencia as informaes de boot que controlam o boot loader CACLS Gerencia a lista de controle de acesso (ACL) CALL Permite que um arquivo .bat seja chamado a partir de outro arquivo .bat CD Exibe o diretrio local ou acessa outro diretrio Exemplo: CD c:\windows altera o diretrio atual CD .. retorna um nvel acima CD ../.. retorna dois nveis acima

Unidade I: concorrncia, interrupes e estrutura


CHCP Exibe ou altera o cdigo de pgina do console Digitar apenas CHCP mostrar o cdigo atual Digitar CHCP 850 alterar o cdigo para 850 (multilingual latin I) Exemplos de cdigos: 860 portugus 437 americano 866 russo

Unidade I: concorrncia, interrupes e estrutura


CHKDSK Utilitrio de checagem de disco Pode checar uma unidade especificamente Exemplo: CHKDSK C: (ir checar apenas a unidade C) CLS Limpaatela CMD Permite checar e alterar vrios parmetros do interpretador de comandos Exemplo: CMD /t:64 altera as cores da fonte e do fundo COLOR Altera a cor de fonte e de fundo do interpretador de comandos

Unidade I: concorrncia, interrupes e estrutura


COMP Compara arquivos Sintaxe: comp arquivo1 arquivo2 [opes] COMPACT Compacta um arquivo S funciona em parties NTFS Sintaxe: compact [opes] arquivo /c compactar /u descompactar CONVERT Converte um volume FAT em NTFS

Unidade I: concorrncia, interrupes e estrutura


COPY Copia arquivos Sintaxe: copy diretorio\arquivo_origem diretorio\arquivo_destino [opes] Append de arquivos: copy arq1 + arq2 arq3 Neste caso o contedo de arq1 e arq2 ser colocado em arq3 DATE Informa a data do sistema e aguarda a digitao de uma nova /t parmetro que evita que o interpretador de comandos solicite a entrada de uma nova data

Unidade I: concorrncia, interrupes e estrutura


DEL Apaga arquivos DIR Exibe os arquivos de um diretrio DISKCOMP Compara o contedo de dois disquetes DISKCOPY Copia o contedo de um disquete para outro disquete DISKPART Utilitrio de particionamento de disco DRIVERQUERY Exibe uma lista com todos os drivers instalados ECHO echo off :remove o prompt da tela echo on :retorna com o prompt

Unidade I: concorrncia, interrupes e estrutura


EXIT Sai do interpretador de comandos FC Compara dois ou mais arquivos e mostra a diferena entre eles FIND Procura por uma string em um arquivo Sintaxe: find string path FORMAT Formata uma unidade de disco FSUTIL Exibe e configura informaes do filesystem FILETYPE Associa descries de arquivos a comandos

Unidade I: concorrncia, interrupes e estrutura


IF Condicional se Muito usado em arquivos .bat Exemplos IF EXIST teste1.txt echo o arquivo existe IF NOT EXIST arq2.txt echo no existe LABEL Exibe informaes sobre a partio e permite que se altere o nome do volume MD Cria um diretrio MOVE Move arquivos de um diretrio para outro RD Remove um diretrio

Unidade I: concorrncia, interrupes e estrutura


REN Renomeia arquivos SUBST Criar drives virtuais Exemplo: SUBST W: C:\Douglas Ser criado driveWque na verdade um link para a pasta C:\Douglas SYSTEMINFO Exibe todas as informaes do sistema (processador, memria, data de boot, nome do host, verso do BIOS, etc.)

Unidade I: concorrncia, interrupes e estrutura


TASKLIST Exibe uma lista de todos os processos em execuo (nome do processo, pid, utilizao da memria, etc.) TASKKILL Interrompe uma tarefa ou processo TIME Exibe a hora atual TREE Exibe os diretrios deformagrfica TYPE Exibe o contedo de um arquivo texto VER Exibe a verso do Windows

Unidade I: concorrncia, interrupes e estrutura


Tipos de estrutura Os sistemas operacionais podem ser classificados quanto s atribuies do kernel Arquitetura monoltica Arquitetura em camadas Arquitetura microkernel

Unidade I: concorrncia, interrupes e estrutura


Contextualizando... Desenvolver um sistema operacional extremamente complexo Principais requisitos Confiabilidade Portabilidade Fcil manuteno Flexibilidade Desempenho

Unidade I: concorrncia, interrupes e estrutura


Os primeiros sistemas operacionais foram desenvolvidos em Assembly IBM OS/360 1 milho de instrues MULTICS 20 milhes de instrues A vantagem do Assembly o desempenho A desvantagem a complexidade Com o tempo foram incorporadas linguagens de alto nvel, como PL/I e Algol Atualmente as mais comuns so C e C++ Windows 2000: 40 milhes de LINHAS de cdigo Drivers, escalonador, rotinas de tratamento de interrupes e outras partes crticas continuam sendo feitas em Assembly

Unidade I: concorrncia, interrupes e estrutura


Arquitetura monoltica Foi o modelo de desenvolvimento dos primeiros sistemas operacionais Trata-se de um conjunto de mdulos que funcionam como se fosse um nico programa Foi adotada no MS-DOS e nos primeiros sistemas UNIX

Unidade I: concorrncia, interrupes e estrutura


aplicao aplicao

Modo usurio Modo kernel System call

Hardware

Unidade I: concorrncia, interrupes e estrutura


Arquitetura de camadas Introduzida a partir do surgimento das tcnicas de programao estruturada e modular O sistema dividido em nveis sobrepostos Cada camada oferece um conjunto de funes que podem ser utilizadas apenas pela camada superior Exemplos THE (Technische Hogeschool Eindhoven) Dijkstra (1968) MULTICS OpenVMS

Unidade I: concorrncia, interrupes e estrutura

Unidade I: concorrncia, interrupes e estrutura


Vantagens As funes do sistema operacional ficam isoladas nas camadas mais internas (facilidade de manuteno e depurao) Criao de uma hierarquia de modos de acesso, o que protege as camadas mais internas

Unidade I: concorrncia, interrupes e estrutura


Desvantagem Desempenho Cada nova camada implica uma mudana no modo de acesso Atualmente a maioria dos sistemas operacionais utiliza o modelo de duas camadas Modo usurio (no privilegiado) Modo kernel (privilegiado) A maioria das verses Unix e Windows se baseia nesse modelo

Unidade I: concorrncia, interrupes e estrutura


Arquitetura microkernel Principal objetivo: tornar o ncleo do sistema operacional o menor e mais simples possvel Os servios do sistema so disponibilizados atravs de processos Cada processo responsvel por oferecer um conjunto especfico de funes (gerncia de arquivos, de processos, de memria, escalonamento, etc.)

Unidade I: concorrncia, interrupes e estrutura


Quando uma aplicao deseja um servio, realizada uma solicitao ao processo responsvel, atravs de uma mensagem A resposta se d atravs do envio de outra mensagem A principal funo do ncleo realizar esta comunicao (a troca de mensagens)

Unidade I: concorrncia, interrupes e estrutura

Modo usurio Modo kernel

Microkernel

Hardware

me ns ag

em ag ns me em

Unidade I: concorrncia, interrupes e estrutura


Este conceito surgiu no sistema operacional Mach / Universidade Carnegie-Mellon (dcada de 1980) Existiam, basicamente, quatro servios Gerncia de processos Gerncia de memria Comunicao por troca de mensagens Operaes de E/S

Unidade I: concorrncia, interrupes e estrutura


Neste modelo, se um servio parar o kernel no comprometido (aumento de disponibilidade) Apesar das vantagens, sua implementao muito mais difcil

Unidade I: concorrncia, interrupes e estrutura


Reviso 1. Explique o conceito de concorrncia nos sistemas multiprogramveis 2. Voc considera que o mecanismo de interrupo importante para a multiprogramao? Justifique. 3. Explique o mecanismo de funcionamento das interrupes 4. D exemplos de eventos associados ao mecanismo de excees 5. Qual a diferena entre verso e distribuio Linux? 6. O que so instrues privilegiadas e no privilegiadas? 7. D um exemplo de como acontece a mudana de modo de acesso

Unidade I: concorrncia, interrupes e estrutura


Reviso 9. Explique como so os mecanismos de proteo do kernel 10. Explique o que so system calls 11. Compare as arquiteturas monoltica e de camadas, descrevendo suas vantagens e desvantagens 12. Descreva as vantagens e desvantagens da arquitetura microkernel

Unidade I: concorrncia, interrupes e estrutura


Atividade prtica. Todas as operaes descritas nesta atividade devem ser realizadas no interpretador de comandos do Microsoft Windows, sem que seja feito uso da interface grfica Para abrir o interpretador de comandos, siga os passos abaixo: 1. Clique em iniciar / executar 2. Digite CMD e tecle <enter>

Unidade I: concorrncia, interrupes e estrutura


1. Atravsdoprogramaedit,crieumarquivotextocomumcontedo qualquer e salve-ocomonomearq1.txt 2. Atravs do comando ATTRIB, verifique os atributos deste arquivo 3. Altereosatributosdoarquivoparasomenteleitura 4. Verifique se os atributos foram atribudos corretamente 5. Tenteeditarestearquivoparaconfirmarqueeledotiposomente leitura 6. Removaoatributosomenteleituraeverifiqueseoarquivopassou a ser editvel 7. Crieumdiretriochamadodir1eacesse-o 8. Em seguida, volte para o diretrio anterior 9. Insira um pen-drive em seu computador e faa uma checagem de erros atravs do CHKDSK. Observe as informaes no trmino

Unidade I: concorrncia, interrupes e estrutura


10. Altere a cor de fonte e de fundo de seu interpretador de comandos 11. Crie dois arquivos: arqA.txt e arqB.txt. Insira contedo diferente em ambos e compare, atravs do comando COMP, se eles so realmente diferentes 12. Atravs do comando COPY, faa uma cpia do arquivo arqB.txt e salve-o com o nome arqC.txt. Compare-os atravs do comando COMP e veja se eles realmente so iguais. 13. Altere uma nica linha no arquivo ArqC.txt e compare-o com o arquivo ArqB.txt atravs do comando FC. 14. Explique a diferena entre a comparao feita com o COMP e com o FC nos exerccios anteriores 15. Compacte algum arquivo atravs do comando COMPACT e veja se o tamanho do arquivo diminuiu. 16. Tente compactar algum arquivo em um pen-drive. Analise e explique os resultados.

Unidade I: concorrncia, interrupes e estrutura


17. Experimente exibir a data e a hora do sistema operacional na tela 18. Apague o arquivo arqA.txt, atravs do comando DEL 19. Verifique, atravs do comando DIR, se o arquivo foi mesmo apagado 20. AltereonomedaunidadeC:paraoseunome 21. Movaoarquivoarq1.txtparaodiretriodir1 22. Removaodiretriodir1 23. RenomeieoarquivoarqA.txtparaarquivoA.txt 24. Crie uma pasta para voc em C:\Seu_nome 25. Associeodrivewaessapasta 26. Grave um arquivo em w:\ e veja se este arquivo est em c:\seu_nome 27. Confira as informaes exibidas pelo comando systeminfo

Unidade I: concorrncia, interrupes e estrutura


28. Observe a sada do comando TASKLIST 29. Interrompa algum processo atravs do comando TASKKILL e confira se ele realmente foi eliminado 30. Crie trs diretrios no raiz do seu drive W. Em cada diretrio, crie pelo menos um subdiretrio. E em cada subditetrio crie mais um subdiretrio. No total, voc ter criado 9 diretrios. 31. Atravs do comando TREE, visualize a estrutura criada no exerccio anterior 32. Confira a verso de seu Windows atravs do comando VER

Unidade I: concorrncia, interrupes e estrutura


Atividade prtica extra. Leia o texto abaixo:
William um analista de suporte muito competente, que via telefone est tentando descobrir por que o software de automao comercial de seu cliente parou de funcionar. Todas as suas alternativas se esgotaram. William pede, ento, ajuda ao programador que desenvolveu a aplicao. O programador nunca entra em contato com o cliente, mas precisa de uma srie de informaes para conseguir solucionar o problema. Ele ento solicita que William repasse as seguintes informaes: - Nmero da verso do Windows; - Lista de todos os arquivos que esto no diretrio C:\Windows\System32 - Lista de todos os programas que esto em execuo - Lista de todos os drivers instalados - Lista com todas as informaes do sistema operacional (processador, memria disponvel, memria alocada, etc.) - Atributos do arquivo C:\autoexec.bat Janete, secretria de William, no faz a mnima ideia de como obter essas informaes. William no pode se deslocar at o cliente e nem pode acessar a mquina remotamente. Uma boa opo seria William enviar um arquivo .bat para Janete, de forma que ela apenas executasse-o e enviasse para William os arquivos com as respostas. Crie um arquivo .bat que obtenha todas as informaes que William precisa e salve-as em arquivos separados (versao.txt, system32.txt, processos.txt, drivers.txt, info.txt, autoexec.txt)

Referncias
EVOLUTION of Microsoft Windows 1985-2009. Hongkiat.com. Disponvel em: http://www.hongkiat.com/blog/evolution-of-microsoftwindows-1985-2009/. Acesso em 26/10/2010.

Vous aimerez peut-être aussi