You are on page 1of 30

Sistemas operacionais

Funes bsicas de um SO
Interao com o usurio manter servios Possibilitar ao usurio o uso dos recursos de hardware

Tipos de S.O.
sistema operacional de tempo real (RTOS - Real-time operating system)
- A funo do RTOS gerenciar os recursos do computador para que uma operao especfica seja sempre executada durante um mesmo perodo de tempo

Monousurio monotarefa
Um usurio usando uma aplicao por vez
DOS

Monousurio multitarefa
Um usurio usando mais de uma aplicao simultaneamente
Windows MacOS

Multiusurio
Vrios usurios utilizando simultaneamente os recursos de um computador
Unix sistemas de mainframes

Gerenciamento do processador pelo S.O.


Garantir o tempo de cada processo Usar os ciclos de processamento para realizar as tarefas sem prejudicar outros processos.
Processos so programas ou rotinas que executam aes e pode ser controlado pelo usurio, por aplicativos ou pelo prprio sistema operacional. Um aplicativo um conjunto de processos.

Controle de processos
O S.O. controla processos que fazem parte dos aplicativos. Num sistema monotarefa isso bastante simples, bastando o processo ser iniciado e interrompido quando chegar ao fim ou suspenso quando existir algum tipo de interao com o usurio ou com outro dispositivo envolvido nessa operao. J em um sistema multitarefa isso exige maiores cuidados

Sistemas multitarefa
Para tornar a multitarefa possvel um novo tipo de sinal foi desenvolvido: a interrupo. As interrupes acontecem quando algum dispositivo precisa da ateno do processador. O S.O. interpreta o dispositivo que pede a interrupo e aloca um tempo de processamento para ele. Encerrado o processamento esse dispositivo volta pra fila de espera e faz nova requisio de interrupo quando houver necessidade.

Multitarefa
Um processo ocupa uma certa quantidade de memria RAM. Ele tambm utiliza os registradores, pilhas e filas da CPU e memria do sistema operacional. Quando 2 processos acontecem ao mesmo tempo, o sistema operacional aloca uma certa quantidade de ciclos da CPU para um programa. Depois que os ciclos so executados, o sistema operacional salva o contedo de todos os registradores, pilhas e filas utilizados pelos processos e registra o ponto em que a execuo foi interrompida. Ele ento carrega todos os registradores, pilhas e filas utilizados pelo segundo processo e aloca outra quantidade de ciclos de CPU para ele. Quando os ciclos terminam, o sistema operacional salva todos os registradores, pilhas e filas utilizadas pelo segundo programa e carrega o primeiro programa.

Bloco de controle de processo


no bloco de controle de processos que esto armazenados todos os dados pertinentes ao processamento programa em execuo, entre eles:
Um ID, identificador do processo Ponteiros para indicar o local das instrues e dados do ultimo processamento Contedo dos registradores e flags Ponteiros do menor e maior endereo de memria que o processo ocupa Lista de arquivos abertos pelo processo A prioridade do processo A situao (status) dos dispositivos de entrada e sada usados pelo processo

Implementao de Processos

Campos de uma entrada na tabela de processos

Status
Os processos abertos sempre se encontram em um determinado estado. Pode ser em espera (suspenso), quando uma interao com o usurio feita. Esse status no consome processamento at que haja uma interrupo indicando a ao do usurio. Pode tambm estar ativo, tomando sua fatia de tempo do procesador

Troca de processos
Acontece sem a interferncia direta do usurio e cada processo consegue da CPU todo tempo que necessita para executar sua tarefa, mas no necessariamente tempo contnuo. Deve-se lembrar que o prprio S.O. tambm um processo e, portanto, tambm tem uma fatia de tempo da CPU Quando existem muitos processos simultaneos o S.O. pode ter dificuldades ao gerenciar a diviso de tempos entre eles. Quando ele perde muito tempo no processo de troca ocorre o que chamado de trashing e quando o sistema s executa trocas, sem dar tempo de execuo aos processos acontece o chamado dead lock.

Thread
Para reduzir o trashing preciso diminuir a necessidade de abertura de novos processos, ento criou-se o thread, que um processo mais simples para tarefas menores. Uma thread no lida com entrada/saida e no exige um grande bloco de controle como um processo regular. Uma thread no pode disparar outro processo, j um processo pode disparar vrias threads ou mesmo outros processos (processos pai abrem processos filhos formando uma rvore de processos).

Multi ncleos ou multiprocessadores


Em sistemas multiprocessados o trabalho dividido entre as CPUs. O S.O. deve equacionar a demanda de cada processo para as diferentes CPUs Sistemas assimtricos utilizam uma CPU para suas prprias necessidades e as outras para dividir a carga de outros processos Sistema simtricos equacionam a demanda de todos os processos,inclusive os do S.O., e as dividem igualmente entre as CPUs existentes

Gerenciamento de memria
Duas tarefas so imprescindveis para o S.O. no gerenciamento de memria
Cada processo deve ter memria suficiente para ser executado. Cada processo no pode usar a memria alocada a outro processo Os diferentes tipos de memria do sistema devem ser bem usados para que todos os procesos sejam executados de forma eficiente

CPU

Cache

RAM

Memria virtual

Disco

Tipos de memria
RAM memria de trabalho. Voltil. nessa memria que os programas devem ser carregados para serem executados. ROM memria somente para leitura, mais lenta que a ram, porm no voltil. Contm a inicializao do sistema. CACHE memria de suporte ao processamento. Muito rpida e muito cara, alm de consumir muita energia (emite muito calor). SECUNDRIA os discos, principalmente o HD, disco rgido. Tem grande capacidade, serve para leitura e escrita, no voltil, mas bastante lento

Memria virtual
Ram um recurso caro e escasso. Nela todos os programas em execuo esto armazenados. Somente parte do cdigo executado a cada instante. A ram dividida em blocos e uma parte do disco que reservada para ser memria virtual contm essa mesma diviso. O S.O. emula mais memria ram com esse espao reservado e troca as pginas entre a ram real e a virtual conforme qual parte do programa est sendo executada

Modelo
CPU Reg 1 Reg 2 PC Prog 1 Prog 2 ram I/O S.O.

Memria virtual disco

Prog 2 Prog 1

1 sistema l os programas e os armazena na ram 2 executa parte do prog1 3 ao esgotar seu tempo, os dados do prog1 so salvos 4 executa parte do prog2 5 ao esgotar seu tempo, os dados do prog2 so salvos 6 so carregados os dados do prog1 7 executa parte do prog1 8 ao esgotar seu tempo, os dados do prog1 so salvos 9 so carregados os dados do prog2 10 volte ao passo 4 at acabar o programa.

Processos
Conceito de Processo Escalonamento de Processos Operaes com Processos Processos Cooperativos Comunicao entre Processos

Processos jobs - tasks


Um sistema operacional executa uma variedade de programas:
Sistema Batch jobs Sistema Tempo Compartilhado (Time-shared) programas do usurio ou tarefas

Processo um programa em execuo; execuo do processo deve progredir de maneira seqencial. Um processo inclui:
Contador de programa Pilha Sees de dados

Estados de Processo
Durante a execuo de um processo, ele altera seu estado Novo (new): O processo est sendo criado. Executando (running): instrues esto sendo executadas. Esperando (waiting): O processo est esperando algum evento acontecer. Pronto (ready): O processo est esperando ser associado a um procesador. Terminado (terminated): O processo terminou sua execuo.

novo pronto rodando

finalizado

entrada/sada completa

esperando

Aguardando entrada/sada

Process Control Block (PCB)


Informao associada com cada processo.
Estado do Processo Contador de Programas Registradores da CPU Informaes de escalonamento da CPU Informao de Gerenciamento de memria Informao para Contabilidade Informaes do status de E/S
pointer Status do processo

Numero do processo Contador de programa

registradores

Limites da memria

Lista de arquivos abertos

Alternncia entre processos


Processo 0 Sistema operacional Processo 1

Salva status do PCB 0 Carrega status do PCB 1

Salva status do PCB 1 Carrega status do PCB 0

Filas de Escalonamento de Processos


Fila de Job conjunto de todos os processos no sistema. Fila de Processos prontos (Ready queue) conjunto de todos os processos residentes na memria principal, prontos e esperando para executar. Fila de dispositivos conjunto dos processos esperando por um dispositivo de E/S. Migrao de processos entre as vrias filas. Escalonadores Escalonador de Jobs (Long-term scheduler) seleciona quais processos devem ser trazidos para a fila de processos prontos. Escalonador da CPU (Short-term scheduler) seleciona qual processo deve ser executados a seguir e aloca CPU para ele.

Escalonadores (Cont.)
Escalonador da CPU invocado muito freqentemente (milisegundos) Escalonador de Jobs invocada muito infreqentemente (segundos, minutos)=> (pode ser lento). O escalonador de Jobs controla o grau de multiprogramao. Processos podem ser descritos como:
Processos com E/S predominante (I/O-bound process) gasta mais tempo realizando E/S do que computando, muitos ciclos curtos de CPU. Processos com uso de CPU predominante (CPU-bound process) gasta mais tempo realizando computaes; poucos ciclos longos de CPU.

Troca de Contexto
Quando CPU alterna para outro processo, o sistema deve salvar o estado do processo deixando o processador e carregar o estado anteriormente salvo do processo novo. Tempo de troca de contexto sobrecarga no sistema; o sistema no realiza trabalho til durante a troca de contexto. Tempo de Troca de Contexto dependente de suporte em hardware.

Processos
Criao de Processos Processo pai cria processo filho, o qual, por sua vez, pode criar outros processos, formando uma rvore de processos. Compartilhamento de Recursos Pai e filho compartilham todos os recursos. Filho compartilha um subconjunto dos recursos do pai. Processos Cooperativos Processos Independentes no podem afetar ou ser afetados pela execuo de outro processo a no ser que sejam processos Cooperantes. Vantagens da cooperao entre processos: Compartilhamento de Informaes. Aumento na velocidade da computao. Modularidade.

Criao de processos
Processo pai cria processo filho, o qual, por sua vez, pode criar outros processos, formando uma rvore de processos. Estratgias para o Compartilhamento de Recursos
Pai e filho compartilham todos os recursos. Filho compartilha um subconjunto dos recursos do pai. Pai e filho no compartilham recursos.

Execuo
Pai e filho executam concorrentemente. Pai espera at filho terminar.

Criao de Processos (Cont.)


Espao de endereamento
Filho duplica espao do pai. Filho tem um programa carregado no seu espao.

Exemplos no UNIX
Chamada de sistemas fork cria um novo processo Chamada de sistemas execve usada aps o fork para sobrescrever o espao de memria do processo com um novo programa.

Terminao de Processos
Processo executa ltima declarao e pede ao sistema operacional para decidir (exit). Dados de sada passam do filho para o pai (via wait). Recursos do processo so desalocados pelo sistema operacional. Pai pode terminar a execuo do processo filho (abort). Filho se excedeu alocando recursos. Tarefa delegada ao filho no mais necessria. Pai est terminando. Sistema operacional no permite que um filho continue sua execuo se seu pai terminou. Terminao em cascata.

Cooperao de Processos
Processos Independentes no podem afetar ou ser afetados pela execuo de outro processo. Processos Cooperantes podem afetar ou ser afetados pela execuo de outro processo Vantagens da cooperao entre processos:
Compartilhamento de Informaes Aumento na velocidade da computao Modularidade Convenincia

You might also like