Você está na página 1de 29

Fundamentos de Sistemas Operacionais

Aula 1: Introduo e Conceitos

Diego Passos

Informaes Bsicas
Horrio: teras e quintas, 16h. Salas: 442/235 Contato: Por e-mail: dpassos@ic.uff.br Pela pgina: http://www.midiacom.uff.br/~diego/sisop/ Ou no Laboratrio Midiacom (sala 408, bloco E). Avaliao: Duas provas. Mdia final m = (P1 + 2 * P2) / 3. Notas, avisos, etc, enviados por e-mail: Lista. Listas de exerccios: Ao final de cada aula. No fazem parte da avaliao.

Calendrio
29/03 Introduo e Conceitos 31/03 Processos 05/04 Segurana Inter-Processos 07/04 Programao Concorrente 12/04 Excluso Mtua 14/04 Sistemas Distribudos e Deadlock 19/04 Implementao de Processos e Threads 21/04 Feriado (Tiradentes) 26/04 Escalonamento 28/04 Escalonadores No-Preemptivos 03/05 Escalonadores Preemptivos 05/05 Escalonamento: Estudo de Casos 10/05 Reviso para P1 12/05 P1 17/05 Vista de Prova (P1) / Compiladores e Montadores 19/05 Entrada e Sada: Dispositivos e Tipos de Acesso 24/05 26/05 31/05 02/06 07/06 09/06 14/06 16/06 21/06 23/06 28/06 30/06 05/07 07/07 12/07 14/07 Entrada e Sada: Software Entrada e Sada: Estudo de Caso SBRC (No Haver Aula) SBRC (No Haver Aula) Gerenciamento de Memria e Tipos de Alocao Primitivos Segmentao e Paginao Memria Virtual Sistemas de Arquivo Linux e Windows 2000 Feriado (Corpus Christi) Reviso para P2 P2 Vista de Prova (P2) VS Vista de Prova (VS) ---

Bibliografia
"Sistemas Operacionais". Rmulo Oliveira, Alexandre Carissimi, Simo Toscani. 2a Edio. "Operating Systems Concepts". Silberschatz, Gavin, Gagne. Wiley. 6a Edio. "Modern Operating Systems". Andrew Tenenbaum. 2a Edio.

Conceitos

O que um Sistema Operacional?


Duas definies: Software que prov acesso ao hardware s aplicaes do usurio. Software que gerencia e divide os recursos da mquina entre as aplicaes. Um SO um software, um programa. Ele administra o uso da mquina. Ele facilita o uso dos recursos de hardware, atravs de chamadas de sistema.

O que no um Sistema Operacional?


Certas aplicaes so s vezes confundidas com o SO: Gerenciadores de janela. Utilitrios de configurao. Shells (interface de linha de comando). Estes programas, embora distribudos juntamente com o SO, no so parte integrande do sistema operacional.

Exemplos de Sistemas Operacionais


DOS. Windows (a partir do Windows 95). Unix. BSD (e variantes). Linux. GNU Hurd. Symbian. MacOS. IOS. Android. TinyOS. RTOS. ...

Servios de um SO
Execuo de Aplicaes. Acesso a dispositivos de E/S: Discos, interfaces de rede, placas de video, etc. Controle de acesso arquivos. Proteo de arquivos contra leitura e escrita por outros usurios.

Kernel vs. SO
Todo SO possui um ncleo ou kernel. O ncleo responsvel pelas funes mais bsicas do SO: Escalonamento. Gerenciamento de memria. Tratamento de interrupes. Outras funcionalidades podem ser implementadas "fora" do kernel. Manipulao de perifricos. Manipulao de acesso disco. Kernel monoltico vs. Micro-Kernel.

Processo
Uma aplicao uma tarefa do usurio a ser efetuada. Um programa descreve como tal tarefa deve ser executada. Um processo uma instncia de execuo de um programa. Um processo composto por: Cdigo do programa. Estado atual da execuo (valores de variveis, registradores, etc).

Espao de Endereamento
Nos SOs modernos, cada processo tem seu prprio Espao de Endereamento. Um espao de endereamento um conjunto de posies de memria disponveis para o processo. Variveis do processo so guardadas nele. Nos SOs atuais, o endereo utilizado nos programas apenas lgico: So mapeados para posies variadas na memria fsica. Ou seja, o endereo 367 de um processo diferente do endereo 367 de outro processo.

Escalonador
Componente do SO que aloca o recurso "processador". Em geral, h mais processos que processadores disponveis. O escalonador escolhe qual processo pode utilizar o processador a cada instante. Diversos critrios: Tempo de resposta. Vazo. Prioridades.

Histrico

Primeiros Computadores
O Sistema Operacional no existia. O usurio programava a mquina para sua aplicao e iniciava a execuo. A mquina ficava bloqueada at o fim da execuo. Ao final, usurio recolhia os resultados e um novo usurio recomeava o ciclo.

Sistema em Lotes (Batch)

Evoluo do modelo anterior. Conceito de Job: Uma aplicao do usurio. Um funcionrio recebia os Jobs. Em carto perfurado, por exemplo. O funcionrio inseria os Jobs, sequencialmente, a medida que os anteriores acabavam. O funcionrio atuava como um SO bsico, distribuindo os recursos entre os vrios Jobs.

Monitores Residentes
O funcionrio substitudo por um pequeno programa. O Monitor. Usurio colocava seu job em uma fila dentro da mquina. O monitor pegava lia o primeiro Job, o carregava em memria e passava o controle total da mquina para ele. Ao final da execuo de um Job, o Monitor retornava execuo e selecionava o prximo da fila. Programas defeituosos paravam toda a fila: Era necessria interveno manual.

Sistemas Batch Multiprogramado


Problema: operaes de E/S so lentas. e.g., leitura de um arquivo. Enquanto um processo aguarda o fim de uma operao de E/S, o processador fica ocioso. Soluo: colocar vrios programas em memria. Quando o processo atualmente em execuo fica bloqueado, aguardando E/S, outro processo colocado para executar.

Fonte: "Sistemas Operacionais". Rmulo Oliveira, Alexandre Carissimi, Simo Toscani. 2a Edio.

Sistema de timesharing
Sistemas batch no tem bons tempos de resposta. Uma aplicao s executada aps todas as predecessoras. Seria interessante poder executar todas "ao mesmo tempo". Mas h mais processos que processadores. Soluo: compartilhar o tempo do processador. Cada processo ganha um quantum (ou slice) de tempo. Durante seu quantum, pode usar o processador. Ao final do quantum, um novo processo ganha a vez. Os quantuns so renovados periodicamente. Iluso para o usurio de que a mquina est sempre disponvel. Permitiu uso interativo.

Tipos de Sistemas (Operacionais)

Multitarefa vs. Monotarefa


Sistemas multitarefa podem ter mais de um processo em memria (pronto para execuo) por vez. Sistemas monotarefa executam apenas uma tarefa por vez.

Monousurio vs. Multiusurio


Sistemas monousurio permitem que um nico usurio acesse a mquina por vez. Exemplos: MS-DOS, Windows ME. Sistemas multiusurios permitem o acesso de vrios usurios simultneos. Exemplos: Linux, Windows 2000. No confundir: Todo sistema multiusurio multitarefa. Nem todo sistema monousurio monotarefa.

Distribudo vs. Centralizado


PCs so sistemas centralizados. H apenas um "conjunto de hardware". Um ou mais processadores que acessam a mesma memria. A maior parte dos SOs so para este tipo de sistema. Existem tambm os sistemas distribudos: Clusters, grades, etc. Conjuntos de mquinas completas conectadas por rede. H SOs especficos para eles: Plan9, NetWare, Inferno. Mas podem ser usados com SOs centralizados. Aplicaes se comunicam.

Sistemas Distribudos (mais)


Tm ganhado importncia com: Aplicaes Web. Armazenamento remoto. Cloud Computing. Exemplos: Webmail. Google Docs. Drop Box. Amazon EC2.

Paralelo vs. Monoprocessado


H computadores com vrios processadores. Ou ncleos. Hoje, comum. Sistemas com mais de um processador so chamados Paralelos. Vrias tarefas podem ser executadas (realmente) ao mesmo tempo. Maior complexidade de gerenciamento. No confundir: Sistema paralelo: Fortemente acoplado (tightly coupled). Processadores compartilham memria e relgio. Sistema distribudo: Fracamente acoplado (loosely coupled). Memria e relgio independentes.

Sistemas Paralelos (mais)


Dois tipos: Symmetric Multiprocessing (SMP). Todos os processadores executam qualquer tipo de tarefa (SO, aplicao, etc). Asymmetric Multiprocessing. H processadores para tarefas da aplicao e processadores para tarefas do SO.

Sistemas de Tempo Real


H aplicaes com requisitos fortes de tempo. e.g., sistema de freios em um carro. Se prazos mximos de execuo no forem cumpridos, as consequncias so ruins. Dois tipos: Hard Real Time: prazos no podem ser perdidos sob nenhuma hiptese. Soft Real Time: h um percentual de tolerncia na perda de prazos. Este tipo de aplicao requer SOs com caractersticas especficas. Exemplo: Escalonador ciente dos prazos. Controle de admisso de novas tarefas.

Reviso

Para Lembrar
Definio de sistema operacional. Kernel monoltico vs. Micro-kernel. Sistemas batch. Monitor residente. Multiprogramao. Timesharing Sistema Paralelo vs. Sistema Distribudo.

Você também pode gostar