Conceitos de Sistemas Operacionais Estrutura de Sistemas Operacionais Gerência de Processos Gerência de Memória

Tamanho: px
Começar a partir da página:

Download "Conceitos de Sistemas Operacionais Estrutura de Sistemas Operacionais Gerência de Processos Gerência de Memória"

Transcrição

1 Conceitos de Sistemas Operacionais Estrutura de Sistemas Operacionais Gerência de Processos Gerência de Memória Romildo Martins Bezerra CEFET/BA Sistemas Operacionais Arquitetura Conceitual de um Computador... 2 Processadores... 2 Memória Principal... 4 Memória Cache... 4 Memória Secundária... 5 Dispositivos de Entrada e Saída... 6 Apresentando os componentes dentro de um computador... 6 Conceitos de Sistemas Operacionais... 6 Arquitetura de um SO... 7 Arquitetura Interna de um SO... 7 Processos... 8 Memória... 8 Arquivos... 8 Multiprogramação... 9 Estruturas dos Sistemas Operacionais... 9 Sistemas monolíticos... 9 Sistemas em camadas... 9 Máquina Virtual... 9 Modelo cliente/servidor... 9 Gerência de Processos... 9 Estados do processo Comunicação interprocessos Alternativas para a exclusão mútua Escalonamento Gerência de Memória Sistemas Operacionais Atuais Linux Windows Amoeba Minix Pesquise Temas para trabalhos Bibliografia As notas de aulas são referências para estudo. Portanto não devem ser adotadas como material didático absoluto! Versão /08/2008

2 Antes de iniciarmos os estudos de Sistemas operacionais é necessário apresentar uma introdução do funcionamento básico de um computador e seus respectivos componentes. Arquitetura Conceitual de um Computador Os primeiros passos para que a arquitetura dos computadores fosse similar à que conhecemos hoje foram dados pelo pesquisador Von Neumann. Especialista em ciências exatas e o matemático mais eminente do mundo na época, Neumann projetou o IAS, computador onde os dados eram representados de forma digital, com programação mais rápida e flexível, visto que no seu projeto, programas e dados eram inseridos de forma binária na memória. Esse projeto pioneiro com o conceito de programa armazenado transformou o IAS na famosa máquina de Von Neummann. A concepção é utilizada até hoje nos computadores e é composta basicamente de 3 componentes (figura 01): CPU (unidade central de processamento) composto de uma unidade de controle (UC), unidade lógico-aritmética (ULA) e registradores; Memória Principal, onde os programas estão armazenados (veremos detalhes a seguir); Dispositivos de E/S, responsáveis em transferir dados de dentro fora do computador Pontos Importantes: No projeto, o computador só trabalhava com números inteiros. Neumann acreditava que qualquer matemático poderia tratar ponto flutuante Utilização do conceito de programas armazenados Execução seqüencial de instruções Funcionamento busca/decodificação/execução Atualmente os computadores (a maior parte deles) utilizam uma arquitetura composta dos seguintes componentes vistos na figura 01. Memória Principal endereço dados/instruções CPU Registradores ULA PC Unidade de Controle Dispositivos E/S Figura 01 Modelo Conceitual dos computadores atuais, baseados no IAS de Von Neumann Processadores Correspondem ao cérebro do computador, pois é o responsável em executar todas as tarefas referentes à busca/execução dos programas e dados. Para modularizar seu funcionamento, será apresentado o modelo didático com as seguintes componentes: ULA (Unidade Lógico-Aritmética) realiza um conjunto de operações aritméticas e lógicas necessárias à execução das instruções 2

3 UC (Unidade de Controle) busca de instruções da memória, de acordo com a necessidade da instrução a ser processada. Registradores Pequenos espaços de memória que o processador trabalha executando as instruções. Geralmente possuem o mesmo tamanho e tem velocidade muito alta. Destacam-se: o PC Contador de Programa, cujo nome não reflete sua função, que é indicar a próxima instrução a ser executada na memória. o IR Registrador de instruções, que indica a próxima instrução a ser executada. Memória Cache Atualmente para melhorar o desempenho, os processadores atuais possuem uma memória de altíssima velocidade (quando comparada a memória RAM ou disco rígido) para arquivar os dados de maior utilização, evitando acessos constantes à memória. Veremos mais detalhes no decorrer desta apostila. Conforme vimos anteriormente, a seqüência de funcionamento segue a proposta do modelo de Von Neumann, busca-decodificação-execução. O processo de busca da instrução (fetch) transfere a instrução da posição da memória (indicada pelo registrador PC) para a CPU. A decodificação é responsabilidade da unidade de controle, que após decodificação gerencia os passos para execução a ser feita pela ALU. Unidade de busca Unidade de decodificação Unidade de execução Figura 02 Estágios do funcionamento dos computadores De forma detalhada, a execução de programas num processador utiliza a seqüência de passos buca-decodica-executa, da seguinte forma: 1. Busca a próxima instrução da memória para o registrador de instrução 2. Atualiza o contador de programa para que ele aponte para a instrução seguinte 3. Determina o tipo de instrução 4. Se a instrução utiliza dados na memória, determina localização 5. Busca os dados, se houver algum, para os registradores internos da CPU 6. Executa a instrução 7. Armazena os dados em locais apropriados 8. Volta para o passo 1 Vamos analisar novamente a figura 02 e imaginemos que um computador vai executar diferentes operações simples (soma, por exemplo). Seria interessante se ele pudesse fazer parte das instruções em paralelo de forma a otimizar sua utilização, sendo pelos menos duas tarefas executadas no mesmo tempo. Isso pode ser feito de duas formas: Paralelismo a nível de instruções A divisão das instruções em partes menores sendo essas executadas em um hardware específico. (lembrem-se do exemplo da soma dado em sala!) [ E1 ] Unidade de busca de instrução [ E2 ] Unidade de decodificação de instrução [ E3 ] Unidade de busca de operando [ E4 ] Unidade de execução de instrução [ E5 ] Unidade de escrita Figura 03 Computador clássico de cinco estágios 3

4 E1 E2 E3 E4 E5 P1 P2 P3 P4 P5 P6 P7 P8 P1 P2 P3 P4 P5 P6 P7 P1 P2 P3 P4 P5 P6 P1 P2 P3 P4 P5 P1 P2 P3 P4 tempo Figura 04 Exemplo de paralelismo a nível de instruções em cinco estágios Paralelismo a nível de processador A idéia é projetar computadores com mais de um processador que podem estar organizados de forma matricial, vetorial, compartilhando barramento com memória compartilhada ou não. Este estudo não corresponde ao objetivo desta disciplina. Memória Principal A memória principal é uma das partes essenciais para o funcionamento do computador, uma vez que é nela que os programas e dados são executados. O que se esperar da memória? Tamanho infinito, ultra-rápida (não atrase o processador) e barata (afinal ninguém quer gastar dinheiro!). É possível conciliar isso? Isso será discutido mais tarde. A memória é organizada através de células, unidades elementares de memória, que compõem segmentos (pedaços alocados por um programa que podem conter mais de uma célula). Vamos imaginar uma memória de 1Megabyte (2 20 bytes = 1024*1024) com células de 32 bits (2 2 bytes), retemos então: Total de Células= Total de memória /Tamanho da célula = 2 20 bytes/2 2 bytes = 2 18 células Ou seja teríamos 2 18 células a serem endereçadas. Vamos supor agora que o sistema operacional precisa de 26 bytes para executar uma determinada instrução (IX) de um programa em Pascal (compilador de alto nível). O sistema operacional ficará responsável em alocar segmentos de memória (contínuos ou não) para que esta informação possa ser trabalhada pelo processador. Vazio IY IX IX IX IX IX IX IX Vazio Figura 05 Dados da instrução X (IX) alocados continuamente na memória Que problemas vocês enxergam que o SO terá com este particionamento da memória? Controle da fragmentação Falta de espaços Movimentação constante Memória Cache Devido a uma diferença história entre processadores e memórias, o processador acaba esperando (apenas por definição!) ciclos de clock até que a memória entregue (aloque) sua requisição. Algumas técnicas para melhorar esta solução podem ser utilizadas, destacamos aqui a utilização de memórias cache. Os projetistas de HW construíram uma memória mais rápida capaz de operar na velocidade dos processadores, mas devido ao seu custo elevado (fruto de aumento do tamanho do processador) é necessário restringir o tamanho da memória cache. Esta apresentação segue o conceito de hierarquia de memória, onde quanto mais rápido a memória, menor será seu tamanho (devido ao custo de fabricação).

5 preço cache principal velocidade discos rígidos unidades de fita Figura 06 Conceito de Hierarquia de memória O problema agora é que ficamos com dois mundos: Memória ultra-rápida e pequena (muitas trocas ocorreriam) Memória mais lenta e bem maior Para se ter uma idéia, diversos processadores atuais trabalham com velocidades superiores a 3.0GHz (3 bilhões de ciclos por segundo) e possui cache interna (L1) de 512Kbytes, enquanto a memória RAM trabalha a 333Mhz e tem tamanho de 256MB, sendo assim 512 vezes maior e 9 vezes mais lenta. Como não é possível trabalhar com apenas uma delas, a proposta é a seguinte: Processador Cache Memória RAM 256MB Figura 07 Memória Cache alocada no processador Outra proposta seria colocá-la na placa-mãe (Chamado de cache L2). Esta memória ultra-rápida, cache, deve ser sempre as informações mais requisitadas pelo processador, e este terá que sempre consultar a cache antes de perguntar memória principal. Mas como adivinhar que parte da memória será utilizada? Como calcular se o tempo médio de acesso com a cache tornará o sistema mais eficiente? Cálculos matemáticos e algoritmos complexos são desenvolvidos no projeto de cada arquitetura. Para os mais interessados pesquisem o principio da localidade, base teórica para o funcionamento de sistemas com utilização intensiva de cache. Memória Secundária Por maior que seja a memória principal, ela será sempre pequena. Tanenbaum em Organização Estruturada de Computadores, página 40. Apesar de a afirmação parecer (e é!) forte demais, não é possível enxergar uma estrutura computacional moderna sem a utilização de memória secundária. Do mesmo modo que a cahe é muito mais rápida que a memória principal, essa é muito mais rápida que a memória secundária. Aqui serão explicados apenas os discos magnéticos, vistos que o foco é apresentar uma introdução para sistemas operacionais. A composição básica de um disco magnético é vista abaixo. Figura 08 Esquema Básico do disco 5

6 Nota-se que esta composição mecânica dos discos não pode superar, em velocidade, o método digital dos semicondutores utilizados na memória RAM e memória cache. Dispositivos de Entrada e Saída Antes de serem tratados os dispositivos de E/S é importante salientar que a transferência de dados entre processador, memória principal, memória secundária (discos rígidos, flexíveis e óticos) é feita através dos barramentos. Cada dispositivo de entrada e saída é composto de uma controladora e do dispositivo propriamente dito. Esta controladora dá acesso ao barramento do computador sem que haja uma intervenção o processador executando um acesso direto à memória (DMA). E quando esta transferência de dados é transmitida, a controladora força uma interrupção, fazendo com qu o processador suspenda o processo em execução a fim de rodar um procedimento para verificar possíveis erros de transferência de dados, este procedimento é denominado rotina do tratamento de interrupção. Já que o barramento é acessado por todos os dispositivos, o que aconteceria se dois ou mais dispositivos brigarem pelo acesso ao barramento? Nos projetos dos computadores atuais está presente um dispositivo que executa esta seleção chamada de arbitro do barramento. A prioridade geralmente é dos discos magnéticos, uma vez que as paradas sucessivas podem ocasionar perda de dados. Atualmente estas controladoras estão presentes dentro da placa-mãe HD Monitor Teclado Processador Memória Controladora HD Controladora Vídeo Controladora Figura 09 Modelo conceitual detalhado Apresentando os componentes dentro de um computador Esta aula não terá apostila. Corresponderá a uma aula prática com apresentação de hardware. Conceitos de Sistemas Operacionais O sistema computacional moderno é algo complexo devido a quantidade de dispositivos envolvidos. Desenvolver programas que mantenham o controle destes componentes de forma otimizada impactaria na lentidão para novos softwares. Daí surge o sistema operacional, cujo trabalho é gerenciar esses componentes e fornecer aos programas de usuários uma interface simples de acesso ao hardware. Sistema Operacional é um conjunto de ferramentas necessárias para que um computador possa ser utilizado de forma adequada, pois consiste de intermediário entre o aplicativo e a camada física do hardware. Este conjunto é constituído por um Kernel, ou núcleo, e um conjunto de software básicos, que executam operações simples, mas que juntos fazem uma grande diferença. O sistema operacional é uma camada de software colocada entre o hardware e software do computador, com o objetivo de facilitar as atividades dos desenvolvedores e usuários de software, uma vez que não precisam fazer acesso direto ao dispositivo, fornecendo uma interface mais amigável e intuitiva. Software Sistema operacional Hardware Tipos de serviços: Acesso aos periféricos Utilização simples de recursos pelo usuário Manipulação de dados (arquivos e diretórios) Controle de recursos compartilhados Figura 10 Localização lógica do SO 6

7 Para isso, ele deve ser responsável pela: Gerência do processador, também conhecida como gerência de processos, seu objetivo visa distribuir de forma justa o processamento evitando o monopólio do processador e respeitando a prioridade dos usuários e aplicações. Gerência de memória, objetiva fornecer um espaço isolado de memória para cada processo de forma que ele se sinta único na memória. São necessários recursos (memória virtual paginação e segmentação) para que este objetivo seja cumprido de forma eficiente e atenda todos os processos ativos. Gerência de dispositivos, objetiva garantir o acesso aos dispositivos de forma mais fácil possível (drivers) aos usuários, criando modelos que generalizem a utilização dos dispositivos (lembrar do conceito de bloco no HD). Gerência de arquivos, uma implementação específica da gerencia de dispositivos, trabalhando apenas com o processo de armazenamento e acesso aos dados, atualmente através de arquivos e diretórios. Gerencia de proteção, definir o acesso harmônico em sistemas de vários usuários com compartilhamento de recursos, como por exemplo, pastas compartilhadas em rede. Os sistemas operacionais vêm passando por um processo gradual de operação. A evolução dos SO é diretamente ligada a evolução dos computadores e passou por algumas gerações: 1ª Geração Válvulas e Painéis de Programação 2ª Geração Transistores e Sistemas de lote 3ª Geração CIs e MultiProgramação 4ª Geração Computadores Pessoais (Atual) Arquitetura de um SO Esta arquitetura é simples e intuitiva de ser entendida. O kernel presta serviço aos programas de usuários e recebe serviços do microkernel. A separação entre estes dois níveis diz respeito a separação dos serviços básicos oferecidos. Chamadas de Sistema Programas Kernel Microkernel Hardware Dados Solicitados C:\ dir /s Interpretador de Comandos Kernel Figura 12 Interpretador de comandos Arquitetura Interna de um SO Figura 11 Arquitetura de um SO Um sistema operacional pode oferecer serviços também na camda de utilitários (programas de usuário) confundindo muitas vezes o usuário, uma vez que tais serviços são distribuídos pelo próprio forncedor do software. O Windows Explorer e o task manager - manipulador de arquivos e diretórios e gerenciador de tarefas, respectivamente são exemplos no Microsoft Windows. Já o comando top e time são bons exemplos no Linux. Talvez o mais importante eles seja o interpretador de comandos, uma vez que o usuário começa sua seção de trabalhos (sem interface visual!). A eficiência do SO é decorrente das facilidades impostas e multiprogramação (veremos a seguir), que por sua vez só ocorrem pois ele está organizado internamente, viabilizando dois tipos de eventos: 7

8 Chamada de sistema é uma solicitação de recurso por parte de um programa que está sendo executado. Diversas preocupações associadas podem ser listadas, como por exemplo: permissão do usuário a este recurso. Interrupção de periférico o processador para o processador que está executando para atender a um retorno de um periférico (controladora dele) informando que o recurso está disponível. Detalhes da arquitetura interna do sistema operacional serão vistos no próximos capítulos. Processos É basicamente um programa em execução sendo constituído de um código executável, dados referentes ao código, da pilha de execução, do valor do PC, do valor do apontador de pilha, dos valores dos demais registradores do hardware e outras informações. Associado a um processo está seu espaço de endereçamento, uma lista de posições de memória que contém todas as informações do processo. Como em um sistema operacional vários processos requerem a CPU, é necessário compartilhar o tempo de acesso entre eles de forma que quando um processo seja parado, todas as suas informações (se estado atual) seja guardado. Isto porque quando o mesmo for reiniciado deve continuar do ponto em que parou. Para isso os sistemas operacionais utilizam uma tabela chamada tabela d processos que consiste em um vetor ou lista encadeada de estruturas para cada processo existente. Um processo pode criar mais processos (processos filhos) que podem criar também seus processos filhos. Estes processos se organizam como uma estrutura em arvore conforme vista a seguir. A necessidade de comunicação entre processos para sincronizar suas atividades é chama de comunicação interprocessos. A B C D E F G Figura 13 Arvore de processos Quando estão em operação, dois ou mais processos podem entrar em uma situação da qual mão conseguem sair, esta situação é chamada de deadlock. Memória Todo computador tem uma memória principal para guardar o estado dos programas em execução. Em sistemas operacionais muito simples, somente um programa por vez ocupa a memória. Sistemas operacionais modernos permitem que múltiplos programas residam na memória principal ao mesmo tempo. Para que não haja conflito com outros programas ou com o sistema operacional é necessário construir um mecanismo de proteção a ser controlado pelo sistema operacional. Outro ponto importante é como gerenciar e distribuir os espaços de endereçamento dos processos guardados em memória principal? O que pode ser feito para que um processo que requer mais memória que o computador dispõe? Sistemas operacionais modernos utilizam memória virtual. Arquivos Como uma das funções do sistema operacional é deixar transparente o aceso aos recursos (entre eles o disco!) serão necessárias criação de chamadas de sistema para facilitar o acesso aos arquivos gravados no disco. Para poder guardar organizadamente os arquivos, vários sistemas operacionais utilizam o conceito de diretório. Cada arquivo dentro desta hierarquia de diretórios pode se acessado fornecendo-se o caminho (path name) a partir do topo da hierarquia, chamado de diretório raiz. 8

9 Multiprogramação Como os programas que estão em execução provavelmente precisarão de acesso aos dispositivos de E/S e acesso a disco, neste momento o processador ficaria ocioso (o que não é verdade, pois o mouse se mexe e você o vê no monitor!). Nota-se uma necessidade de otimizar a eficiência de utilização do computador. Uma solução seria manter mais de um programa (ou parte dele) na memória principal e escalonar a utilização do processador dividindo o tempo de utilização de forma a não deixá-lo ocioso e atendendo todos os processos. Com a multiprogramação, a execução dos processos passa por diversas fases, alternando a utilização do processador de forma que reduza o tempo ocioso do processador e o distribua de forma justa entre processos. Além disso, muitos processos (quase todos) não precisam de toda memória virtual, logo se um processo ficasse exclusivo na memória, isto acarretaria um desperdício. Estruturas dos Sistemas Operacionais Sistemas monolíticos Neste sistema não existe organização visível. É escrito como um conjunto de procedimentos que se comunicam entre si. É a estrutura mais comum. Essa organização sugere uma estrutura básica para o sistema operacional: 1. Um programa principal que invoca o procedimento do serviço requisitado 2. Um conjunto d procedimentos de serviço que executam chamadas ao sistema 3. Um conjunto de procedimentos utilitários que auxiliam os procedimentos de serviço Sistemas em camadas Criação de uma hierarquia de níveis, onde cada um é construído exatamente sobre o nível abaixo. Ex: THE Dijkstra 6 níveis MULTICS Kernel circular Máquina Virtual Uma cópia exata do hardware é feita para criar um ambiente único para execução do programa. Pode-se rodar mais de uma MV em um mesmo hardware ou criar n MV diferentes para hardware diferentes mantendo acima dela uma única interface. Modelo cliente/servidor A comunicação entre os módulos do kernel do SO é feita através de solicitações de serviços através de mensagens de processos clientes a processos servidores (memória, arquivo, terminal...). A divisão do sistema operacional em várias partes facilita o desenvolvimento e evolução de um sistema operacional, além de permitir que uma falha em um servidor por exemplo, o de arquivos não afete toda a máquina. Este modelo oferece fácil adaptabilidade a sistemas distribuídos. Gerência de Processos Um processo é um programa em execução incluindo os valores armazenados nos registradores e o valor das variáveis. As máquinas atuais utilizam o Conceito de pseudoparalelismo paralelismo aparente forma de chavear o processador em diferentes processos (programas) criando a alusão de simultaneidade de execução. Para tal é necessário o rápido chaveamento do processador entre diversos programas em execução, chamado de Multiprogramação. Como o processador está sendo chaveado entre diversos processos pode-se observar que a velocidade de execução não é constante, por isso a programação de processos não pode ter restrições de tempo. 9

10 Estados do processo Embora cada processo seja uma entidade independente, muitas vezes os processos precisam interagir com os outros. Para gerenciar esta interação e o escalonamento dos processos é necessário definir os possíveis estados que um processo pode ficar: 1. Em execução, realmente utilizando a CPU 2. Pronto, capaz de executar a qualquer instante, mas não tem CPU 3. Bloqueado, incapaz de executar Destruição Bloqueado 1 Executando Pronto Criação Figura 14 Estados dos processos 1. Processo bloqueado aguardando informações 2. Escalonador escolhe outro processo 3. Escalonador entrega processador 4. Entrada de dados concluída Nota-se que o escalonador está num nível mais baixo do sistema operacional que os processos para que possa fazer este controle sobre eles. Comunicação interprocessos n-1 n Escalonador Figura 15 Escalonador e os processos Como visto acima, freqüentemente os processos precisam se comunicar com outros processos, preferencialmente de maneira estrutura e sem interrupções (nem sempre é possível). Neste tópico devemos nos preocupar com 3 pontos: a troca de informações entre processos; a garantia de que um processo não invada o espaço físico do outro; e a garantia de que um processo não altere os dados que estão sendo trabalhados por outro (que deve estar no estado pronto neste momento). O Sistema Operacional deve então evitar que quando dois ou mais processos que acessam dados compartilhados o resultado destes processos não dependa do escalonamento, ou seja, um processo não interferiu no outro. Isto é chamado de condição de corrida. Uma forma de se isolar este problema é a definição e tratamento das regiões que possam levar à condições de corrida, tais regiões são chamadas de regiões críticas. Para tal 4 regras foram definidas: 1. Nunca 2 processos podem entrar ao mesmo tempo 2. A velocidade ou quantidade de CPUs não interfere 3. Nenhum processo executando fora da região crítica pode bloquear outros processos 4. Nenhum processo deve esperar eternamente para entrar numa região crítica 10

11 Alternativas para a exclusão mútua Existem várias alternativas para tratar este problema como: inibição das interrupções, utilização de variáveis de travamento e alternância obrigatória. Porém a solução em software de maior sucesso é o algoritmo de Peterson que combina a utilização de variáveis de travamento com a alternância obrigatória. Existe também a solução em hardware chamada de instrução TSL. Porém ambas as soluções apresentam o problema de prioridade invertida, ou seja, um processo de menor prioridade nunca terá acesso a CPU, logo sua prioridade deveria ser maior. Estas soluções também não tratam o problema do Produtor-consumidor (buffer compartilhado) O problema do produtor e consumidor é resolvido através de semáforos (contadores de eventos) e mutex (variável de dois estados). A utilização de monitores (unidade de sincronização de alto nível) para estas soluções facilita a comunicação interprocessos. Escalonamento Quando um computador é multiprogramado, ele muitas vezes possui diversos processos que competem pela CPU, surgindo assim a necessidade de alguma entidade para escalonar a CPU entre os processos, que é chamada de escalonador. Um escalonador deve possuir um algoritmo de escalonamento que se preocupe com 5 regras: 1. Justiça Todos processos devem ter acesso a CPU 2. Eficiência A meta do escalonador é chegar mais perto dos 100% de utilização da CPU 3. Minimizar o Tempo de Resposta 4. Turnaround Minimiza os usuários batch 5. Throughput Maximizar o número de jobs processados Algoritmos de Escalonamento Round Robin Quantum constante Sem prioridade Polêmica: Quantum x troca de contexto Com Prioridade Cada processo possui uma prioridade e o de maior prioridade executa primeiro Para evitar que os processos de maior prioridade tomem conta do processador, a prioridade é decrementada Menor Job Primeiro Só conduz ao resultado ótimo quando todos os jobs tiverem prontos ao mesmo tempo Difícil estimar o tempo Utilização de Média ponderada (aging) Garantido Estimar (prometer) a um processo o tempo de sua execução e cumprir Necessário conhecimento dos processos executando e a serem executados Loteria Distribuição de bilhetes que dão acesso à CPU. Lembra o escalonamento com prioridade, mas bilhetes são trocados entre processos Filas múltiplas Criação de classes de Prioridades alocadas em deferentes filas Objetiva a redução de tempo de swapping 11

12 Para melhor eficiência dos escalonadores, recomenda-se separa o mecanismo da política de escalonamento, visto que um processo pai pode administrar melhor seus processos filhos do que o escalonador do SO. Gerência de Memória Alguns sistemas operacionais mais simples não trabalham com multiprogramação, ou seja, alocam um processo na memória o executam até que seja terminado. Porém a troca de processos entre memória e disco para sistemas multiprogramados é uma realidade. Para este caso, em que a soma dos espaços de memória requeridos por todos os processos é maior que a memória primária, é necessário levar os dados não utilizados para o disco, sendo necessário um controle através de mapa de bits. A utilização de memorial virtual é recomendada, mas o algoritmo de substituição de páginas deve ser eficiente para garantir o desempenho do processo. Recomenda-se o uso do algoritmo do envelhecimento (aging) e o WSClock. Um resumo dos algoritmos de substituição de páginas segue abaixo: Ótimo Não implementável, mas serve como padrão de desempenho NUR Muito rudimentar (não usada recentemente) FIFO Pode descartar páginas importantes FIFO com segunda chance Melhoria do FIFO Relógio Realista MRU Excelente, mas difícil implementação (menos recentemente usada) NFU Método similar ao MRU, mas rudimentar (não frequentemente usada) Envelhecimento (aging) Ótimo desempenho e se aproxima do MRU Conjunto de trabalho Implementação cara WSCLOCK Algoritmo bom e eficiente Apenas a escolha do algoritmo não é o suficiente, preocupação com o tamanho da página e a política de alocação são fundamentais. Como sistema de memória virtual discutido até então é unidimensional, com o crescimento da massa de dados trabalhada a paginação deve aumentar ou a informação do executável e dos dados ficarão distribuídas na memória principal. Surge a necessidade de segmentar o espaço da memória para a tabela de símbolos, o código fonte e pilha de chamadas do sistema. A utilização da segmentação ajuda no tratamento das estruturas de dados dos programas e proteção diferenciada para as informações na memória. 12

13 Sistemas Operacionais Atuais Linux GNU/Linux ou simplesmente Linux, é um popular sistema operacional livre, composto pelo núcleo (kernel) Linux e pelas bibliotecas e ferramentas do projeto GNU. É um sistema do tipo Unix que implementa o padrão POSIX. O Linux hoje funciona em dezenas de plataformas, desde mainframes até um relógio de pulso, passando por várias arquiteturas: Intel, StrongARM, PowerPC, Alpha etc., com grande penetração também em dispositivos embarcados, como handheld, PVR, vídeo-jogos e centrais de entretenimento etc. O Linux tem um kernel híbrido monolítico. Drivers de dispositivo e extensões do kernel tipicamente rodam com acesso total ao hardware, embora alguns rodem em espaço de usuário. Ao contrário dos kernels monolíticos padrão, os drivers de dispositivo são facilmente configurados como módulos, e carregados e descarregados enquanto o sistema está rodando. Também ao contrário de kernels monolíticos padrão, drivers de dispositivo podem ser pré-inseridos sob certas condições. Essa última característica foi adicionada para corrigir o acesso a interrupções de hardware, e para melhorar o suporte a multiprocessamento simétrico. Windows Microsoft Windows é um sistema operacional extremamente popular, criado pela Microsoft, empresa fundada por Bill Gates e Paul Allen. O Windows é um produto comercial, com preços diferenciados para cada versão, embora haja uma enorme quantidade de cópias ilegais instaladas, porque ele é o sistema operacional mais copiado do mundo. Apesar do sistema ser conhecido pelas suas falhas críticas na segurança e como plataforma de vírus de computador e programas-espiões (spywares), o impacto deste sistema no mundo atual é simplesmente incalculável devido ao enorme número de cópias instaladas. Conhecimentos mínimos desse sistema, do seu funcionamento, da sua história e do seu contexto são, na visão de muitos, indispensáveis, mesmo para os leigos em informática. Os primeiros Windows, como o 1.0, 2.0 e 3.x, só são compatíveis em partições formatadas com o sistema de ficheiros FAT, ou como é chamado, FAT16. No salto do 3.1 para o 95B (Windows 95 OSR 2/OSR 2.1), os HD's poderiam ser formatados em FAT32. Inicialmente lançado com o Windows NT, a tecnologia NTFS é agora o padrão de facto para esta classe. Com a convergência de ambos sistemas, o Windows XP passou também a preferir este formato. A principal linguagem de programação usada para se escrever o código-fonte das várias versões do Windows é a linguagem C++. Até à versão 3.11, o sistema rodava em 16 bits, daí em diante, em 32 bits. As últimas versões (como o XP, o 2003 e o futuro Windows Vista (nome de código Longhorn) está preparado para a tecnologia 64 bits. Esse sistema deverá incluir o sistema de arquivos WinFS, que acabou retirado do Windows Vista. Amoeba O sistema operacional distribuído Amoeba é o fruto da investigação de Andrew S. Tanenbaum, na Universidade Vrije na Holanda,. O objetivo do projeto era construir um sistema de timesharing que aparentasse ao utilizador que uma tarefa seria executada numa única máquina mesmo que estivesse realmente a correr em múltiplas máquinas. A última versão do projeto foi a 5.3 em 12 de fevereiro de Depois de seu desenvolvimento, o Amoeba precisava de uma linguagem de programação de scripts, foi então que começou o desenvolvido do Python, evolucionado do ABC e Modula. Minix O Minix é uma versão do Unix, porém, gratuita e com o código fonte disponível. Isso significa que qualquer programador experiente pode fazer alterações nele. Ele foi criado originalmente para uso educacional, para quem quisesse estudar o Unix "em casa". No entanto, vale citar que ele foi escrito do zero e apesar de ser uma versão do Unix, não contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente. Características o Multiprogramação por completo (múltiplos programas podem rodar ao mesmo tempo ). o Roda em 286, 386, 486, Pentium. o Suporta memória estendida (16MB no 286 e 4GB no 386, 486 e Pentium). o RS-232 serial line suporte com terminal emulation, kermit, zmodem, etc. 13

14 o Máximo de três usuários simultaneamente na mesma máquina. o Sistema de chamada compatível com POSIX. o Inteiramente escrito em C (SO, utilitários, bibliotecas etc.). o Compilador ANSI C. o Shell funcionalmente idêntico ao Bourne shell. o Rede TCP/IP. o 5 editores (emacs subset, vi clone, ex, ed, and simple screen editor). o Mais de 200 utilitários (cat, cp, ed, grep, kermit, ls, make, sort, etc.). o Mais de 300 bibliotecas (atoi, fork, malloc, read, stdio, etc.). O Minix é organizado em quatro camadas, onde a camada 1 e 2 formam o kernel: 1º) Gerenciamento de Processos o Captura interrupções e traps, salvar e restaurar registradores, agendar as demais funções para realmente fazer a abstração de processo; o Gerenciar a mecânica das mensagens, verificar destinos legais, localizar buffers de envio e recebimento de memória física e copiar bytes do remetente para o destinatário. 2º) Tarefas de Entrada e Saída o Processos de IO, um por dispositivo; o As tarefas de IO são chamadas drivers de dispositivos; o As tarefas não podem executar todas as instruções no nível da máquina, nem podem acessar todos os registradores da CPU, ou todas as partes da memória, ao contrário da camada 1; o Porém podem acessar regiões da memória que pertencem a processos com menos privilégios. 3º) Processos de Servidor o Contém processos que fornecem serviços úteis ao usuário; o Existem em um nível menos privilegiado que o kernel; 4º) Processos de Usuário o Shell, editores, compiladores, etc Pesquise 1. Problema dos Filósofos 2. Diferença entre paginação e segmentação de memória. 3. Algoritmos de substituição de páginas. 4. O funcionamento passo a passo de uma falta de página. 5. Como a memória virtual é implementada no Windows e Linux. Temas para trabalhos 1. Programação Concorente 2. MINIX 3. SOSIM Bibliografia [1] TANENBAUM, A., Organização Estruturada de Computadores, 5ª Edição, [2] TANENBAUM, A. Sistemas Operacionais Modernos. 2ª Edição [3] TOSCANI, S.; OLIVEIRA, R.; CARISSIMI, A. Sistemas operacionais. 3ª Edição Sagra Luzzatto,

Conceitos de Sistemas Operacionais

Conceitos de Sistemas Operacionais Conceitos de Sistemas Operacionais Romildo Martins Bezerra IFBA/DTEE Computação e Processamento de Dados Conceitos de Sistemas Operacionais... 1 Arquitetura Conceitual de um Computador... 2 Processadores...

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais Sistemas Operacionais e Introdução à Programação Módulo 1 Sistemas Operacionais 1 Sistema computacional Sistemas feitos para resolver problemas Problema: como obter determinado resultado, com base em dados

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Fundamentos de Sistemas Computacionais Introdução

Fundamentos de Sistemas Computacionais Introdução Fundamentos de Sistemas Computacionais Introdução Prof. Eduardo Alchieri Sistema Computacional Hardware Software Usuários Um ou mais processadores, memória, discos, impressoras, teclado, mouse, monitor,

Leia mais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura

Leia mais

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Capítulo 2 Processos e Threads Prof. Fernando Freitas slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide

Leia mais

Nível 3 Sistema Operacional

Nível 3 Sistema Operacional Nível 3 Sistema Operacional Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Nível

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955 O que vimos Infraestrutura de Software Introdução (cont.) Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais 1º Estudo Dirigido Capítulo 1 Introdução aos Sistemas Operacionais 1. Defina um sistema operacional de uma forma conceitual correta, através de suas palavras. R: Sistemas Operacionais são programas de

Leia mais

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software Resumo até aqui Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma máquina estendida abstrações SO como um

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Infra-Estrutura de Software. Introdução. (cont.)

Infra-Estrutura de Software. Introdução. (cont.) Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas

Leia mais

S.O.: Conceitos Básicos

S.O.: Conceitos Básicos S.O.: Conceitos Básicos Camada de software localizada entre o hardware e os programas que executam tarefas para o usuário; Acessa os periféricos Entrada e Saída Esconde os detalhes do hardware para o programador

Leia mais

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais Prof. Dr. Ruy de Oliveira CEFET-MT O que é um Sistema Operacional? Um software que abstrai as complexidades do hardware de um usuário/programador

Leia mais

Sistemas Operacionais I. Introdução

Sistemas Operacionais I. Introdução Sistemas Operacionais I Prof. Fernando Freitas Introdução 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.4 O zoológico de sistemas operacionais 1.5 Conceitos sobre sistemas

Leia mais

Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - email:fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail.

Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - email:fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail. SISTEMAS Introdução a Sistemas Operacionais Prof. Fabricio Alessi Steinmacher - email: OBJETIVOS Identificar as funções e os componentes de um Sistema Operacional; Diferenciar os tipos de Sistemas Operacionais

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade I Introdução 11/02/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Introdução Conceituação de SO Funções Básicas Breve Histórico Tipos de SO Fundamentos

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Aula 04: Sistema Operacional Material Didático do Livro: Introdução à Informática Capron,, H. L. e Johnson, J. A Pearson Education Sistemas Operacionais: Software Oculto Serve

Leia mais

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto Sistemas Operacionais (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Classificações 3. CPU 4. Memória 5. Utilitários O que se

Leia mais

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br Sistemas Operacionais Alexandre Meslin meslin@inf.puc-rio.br Ementa Apresentação do curso Cap1 - Visão Geral Cap2 - Conceitos de Hardware e Software Cap3 - Concorrência Cap4 - Estrutura do Sistema Operacional

Leia mais

Arquitetura de Computadores. Arquitetura de Computadores 1

Arquitetura de Computadores. Arquitetura de Computadores 1 Computadores Computadores 1 Introdução Componentes: Processador; UC; Registradores; ALU s, FPU s, etc. Memória (Sistema de armazenamento de informações; Dispositivo de entrada e saída. Computadores 2 Introdução

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Componentes básicos de um sistema computacional. Cap. 1 (Stallings) Componentes básicos de um sistema computacional Cap. 1 (Stallings) 1 Sistema de Operação Explora recursos de hardware de um ou mais processadores Provê um conjunto de serviços aos utilizadores Gerencia

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I

UFRJ IM - DCC. Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade I 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 ORGANIZAÇÃO DA UNIDADE Conceituação de SO Funções Básicas Breve Histórico Tipos

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Introdução à Ciência da Computação Aula 05 Rogério Eduardo Garcia (rogerio@fct.unesp.br)

Leia mais

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas 1 Apresentação da disciplina Sistemas Operacionais I N Prof. Marcelo Johann 2009/2 O professor A disciplina Bibliografia Cronograma Avaliação Trabalhos Regras do jogo Introdução: Sistemas Operacionais

Leia mais

Introdução a Computação

Introdução a Computação Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel

Leia mais

Curso Técnico de Nível Médio

Curso Técnico de Nível Médio Curso Técnico de Nível Médio Disciplina: Informática Básica 3. Software Prof. Ronaldo Software Formado por um conjunto de instruções (algoritmos) e suas representações para o

Leia mais

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1 Sistema Operacional Slide 1 Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos do computador (CPU, dispositivos periféricos). Estabelece

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

Introdução aos Sistemas

Introdução aos Sistemas Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistema Operacional. Prof. Leonardo Barreto Campos 1 Sistema Operacional Prof. Leonardo Barreto Campos 1 Sumário Introdução; Tipos de Sistemas Operacionais; Escalonamento; Gerenciamento de Memória; Bibliografia. Prof. Leonardo Barreto Campos 2/25 Introdução

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição

Leia mais

Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br

Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br INTRODUÇÃO O que é um sistema operacional? História dos sistemas operacionais Conceitos dos Sistemas Operacionais Estrutura

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Prof. André Dutton EMENTA: Conceitos fundamentais e histórico da ciência da computação; Histórico dos computadores, evolução e tendências; Modalidades de computadores

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS MACHADO/MAIA: CAPÍTULO 07, PÁGINA 101 Prof. Pedro Luís Antonelli Anhanguera Educacional sistemas multiprogramáveis Os sistemas multiprogramáveis

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 1 OBJETIVOS 1. Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?

Leia mais

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano Sistemas Operacionais Marcos Laureano 1/25 Roteiro Estrutura de um sistema operacional Interrupções Proteção do núcleo Níveis de privilégio Chamadas de sistema 2/25 Mono-processadores atuais seguem um

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO Sistema Operacional (S.O.) Aplicativos Formado por um conjunto de rotinas que oferecem serviços aos usuários, às aplicações

Leia mais

A Evolução dos Sistemas Operacionais

A Evolução dos Sistemas Operacionais Capítulo 3 A Evolução dos Sistemas Operacionais Neste capítulo, continuaremos a tratar dos conceitos básicos com a intensão de construirmos, agora em um nível mais elevado de abstração, o entendimento

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta 1 Mono e multiprogramação Introdução Classificação (Aula 2) Recap Sistemas Máquina Profa. Patrícia Gerenciador D. CostaLPRM/DI/UFES Provê Fornece Compartilhamento programador máquina justa recursos Operacionais

Leia mais

01/04/2012. Voltar. Voltar

01/04/2012. Voltar. Voltar Introdução à Informática Capítulo 3 Sistemas Operacionais: Software em Segundo Plano Objetivos Descrever as funções de um sistema operacional. Explicar os fundamentos do sistema operacional de um computador.

Leia mais

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos Módulo 4: Processos Conceito de Processo Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos 4.1 Conceito de Processo Um Sistema Operacional executa uma

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Estudo de Caso 2: Windows Vista

Estudo de Caso 2: Windows Vista Faculdades Integradas de Mineiros Curso de Sistemas de Informação Sistemas Operacionais II Estudo de Caso 2: Windows Vista Grupo 4 Helder / Wagner / Frantyeis Junho/2010 O Windows usa uma estratégia Just-In-Time

Leia mais

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Informação. Sistemas Operacionais 4º Período Sistemas de Informação Sistemas Operacionais 4º Período SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de

Leia mais

Capítulo 3 Gerenciamento de memória

Capítulo 3 Gerenciamento de memória Sistemas operacionais modernos Terceira edição ANDREW S. TANENBAUM Capítulo 3 Gerenciamento de memória Introdução Programas tendem a se expandir a fim de ocupar toda a memória disponível Programador deseja

Leia mais

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc.

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc. 1 1.0 Kernel O kernel (núcleo) representa o coração do Sistema Operacional. Atribuições do kernel: - gerenciamento dos arquivos em disco; - inicializar programas e executá-los; - alocar e gerenciar memória

Leia mais

SISTEMAS OPERACIONAIS. Caderno de Atividades e Interatividades

SISTEMAS OPERACIONAIS. Caderno de Atividades e Interatividades SISTEMAS OPERACIONAIS Caderno de s e Interatividades Ação Educacional Claretiana, 2010 Batatais (SP) Trabalho realizado pelo Centro Universitário Claretiano de Batatais (SP) Cursos: Graduação Disciplina:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema Operacional (SO) é um programa colocado entre o hardware do

Leia mais

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo Módulo 4: Processos Conceito de Processo Conceito de Processo Escalonamento de Processos Operações com Processos Processos Cooperativos Comunicação entre Processos Um sistema operacional executa uma variedade

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

SISTEMAS OPERACIONAIS 2007

SISTEMAS OPERACIONAIS 2007 SISTEMAS OPERACIONAIS 2007 VISÃO GERAL Sumário Conceito Máquina de Níveis Conceituação de SO Componentes do SO Visões do SO Conceito de Sistemas O que se espera de um sistema de computação? Execução de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerencia de Processos 4.1 Introdução aos Processos Gerenciamento de Processos Processo -Definição: É uma abstração do sistema

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional Hardware HARDWARE Sistema Computacional = conjunto de circuitos eletrônicos interligados formado por processador, memória, registradores,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Multiprogramação Permite a execução de diversos processos concorrentemente Maior

Leia mais

Arquitetura de Von Neumann e os Computadores Modernos

Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Computadores e Software Básico Aula 5 Flávia Maristela (flaviamsn@ifba.edu.br) Arquitetura de Von Neumann e as máquinas modernas Onde

Leia mais

Infraestrutura de Hardware. Memória Virtual

Infraestrutura de Hardware. Memória Virtual Infraestrutura de Hardware Memória Virtual Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo HW? Qual é a interface

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

Arquitetura de Computadores. Professor: Vilson Heck Junior Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Dra. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille, da Profa. Dra. Luciana A. F. Martimiano e nas transparências

Leia mais

FAT32 ou NTFS, qual o melhor?

FAT32 ou NTFS, qual o melhor? FAT32 ou NTFS, qual o melhor? Entenda quais as principais diferenças entre eles e qual a melhor escolha O que é um sistema de arquivos? O conceito mais importante sobre este assunto, sem sombra de dúvidas,

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

Componentes de um sistema computacional moderno. DCC/FCUP Inês Dutra Sistemas de Operação 1

Componentes de um sistema computacional moderno. DCC/FCUP Inês Dutra Sistemas de Operação 1 Componentes de um sistema computacional moderno DCC/FCUP Inês Dutra Sistemas de Operação 1 O que é um Sistema de Operação? Para responder a esta questão: vamos dividir a turma em 4 partes CPU memória programas

Leia mais

Tipos de sistemas operacionais

Tipos de sistemas operacionais Tipos de sistemas operacionais Sistemas Operacionais de Computadores de Grande Porte Sistemas Operacionais para Servidores Sistemas Operacionais de Multiprocessadores Sistemas Operacionais para Computadores

Leia mais

VI - Introdução aos Sistemas Operacionais

VI - Introdução aos Sistemas Operacionais VI - Introdução aos Sistemas Operacionais Consiste de um ou um conjunto de programas que compõem o software básico do computador e cuja finalidade é a de executar os programas aplicativos e de servir de

Leia mais

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR Sistemas Operacionais INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR 1 Introdução O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 02: Introdução (Cont.), Visão Geral Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com O QUE É UM SISTEMA OPERACIONAL? Um programa que atua como um intermediário entre

Leia mais

Mecanismo de Interrupção

Mecanismo de Interrupção Mecanismo de Interrupção Paralelismo de Operação Num sistema multiprogramado a CPU está sempre apta a compartilhar o seu tempo entre os vários programas e os diferentes dispositivos periféricos que necessitam

Leia mais

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP Estrutura de um Computador Linguagem de Programação Rone Ilídio UFSJ - CAP Hardware e Software HARDWARE: Objetos Físicos que compões o computador Circuitos Integrados, placas, cabos, memórias, dispositivos

Leia mais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais Laboratório de Sistemas Operacionais Aula 1 Flávia Maristela (flavia@flaviamaristela.com) Tudo o que já vimos antes... Introdução

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

Processadores. Prof. Alexandre Beletti Ferreira

Processadores. Prof. Alexandre Beletti Ferreira Processadores Prof. Alexandre Beletti Ferreira Introdução O processador é um circuito integrado de controle das funções de cálculos e tomadas de decisão de um computador. Também é chamado de cérebro do

Leia mais

Estruturas do Sistema de Computação

Estruturas do Sistema de Computação Estruturas do Sistema de Computação Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Estruturas do Sistema de

Leia mais

Arquitetura de Computadores - Revisão -

Arquitetura de Computadores - Revisão - Arquitetura de Computadores - Revisão - Principais funções de um Sistema Operacional Componentes básicos da Arquitetura Barramentos Registradores da CPU Ciclo de Instruções Interrupções Técnicas de E/S

Leia mais