Buscar

Aula 1 Sistemas Operacionais (4)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais
Sistemas de Informação
Estácio Cabo Frio
Prof. Me. Victor Barreto
victornqs@gmail.com
Aula 4:
Estrutura do SO
Processos
Tópicos
Estrutura do SO: 
• Kernel ou Núcleo
• Chamadas do Sistema (System Calls)
• Modos de Acessos
Conceitos de Processos
Kernel ou Núcleo
As rotinas do sistema são executadas concorrentemente (ao mesmo tempo) sem uma ordem pré-definida, com base em
eventos (acontecimentos) dissociados do tempo (eventos assíncronos).
O kernel é responsável por ser o elo do hardware (parte física) com o software (parte lógica) do computador. Em
outras palavras, o principal objetivo é gerenciar o computador e permitir que os aplicativos sejam executados e façam
uso dos recursos que a máquina tem.
Kernel ou Núcleo
Kernel ou Núcleo
Funções do Kernel:
• Tratamento de interrupções e exceções;
• Criação, eliminação, sincronização;
• Escalonamento e controle de processos;
• Gerência da memória, do sistemas de arquivos, das operações de entrada e saída;
• Suporte a redes locais e distribuídas;
• Contabilização, auditoria e segurança do sistema.
Chamadas do Sistema
Vimos que os sistemas operacionais tem duas funções principais: fornecer abstrações aos programas de usuários e
administrar os recursos do computador. A parte do gerenciamento de recursos é, em grande medida, transparente para
os usuários e feita automaticamente. Desse modo, a interface entre o sistema operacional e os programas de usuários
trata primeiramente sobre como lidar com as abstrações. As chamadas de sistema disponíveis na interface variam de
um sistema para outro.
Como as rotinas do sistema possuem em seu código instruções privilegiadas, então o processador deve estar em modo
kernel para executá-las. As System Calls são como portas de entrada para se ter acesso as rotinas do SO. Se uma
aplicação desejar chamar uma rotina do sistema operacional: mecanismo de system call verificará se a aplicação
possui os privilégios necessários.
Chamadas do Sistema
Sendo assim podemos dizer:
• Mecanismo de proteção ao núcleo do sistema e de acesso aos seus serviços.
• O usuário (ou aplicação), quando deseja solicitar algum serviço do sistema, realiza uma chamada a uma de suas
rotinas (ou serviços) através das chamadas ao sistema.
Chamadas do Sistema
Porta de entrada para rotinas do sistema operacional
Chamadas do Sistema
Exemplo: 
Chamada do sistema read com 3 parâmetros:
• Um para especificar o arquivo;
• Um para informar onde os dados deverão ser colocados;
• Um para indicar quantos bytes deverão ser lidos;
Esta abordagem é mais trabalhosa mas permite entender melhor o que os sistemas operacionais realmente fazem. Vale 
relembrar que qualquer computador com uma CPU pode executar somente uma instrução por vez.
Chamadas do Sistema
Chamada de sistema read: especifica o arquivo; ponteiro para o buffer; número de bytes que deverão ser lidos.
Uma chamada a partir de um programa em C pode ter o seguinte formato:
contador = read(arq, buffer, nbytes);
Se a chamada do sistema não puder ser realizada, por parâmetro inválido ou erro do disco, o contador passará a valer -1 
e o número do erro será colocado em uma variável global erro.
Chamadas do Sistema
• Passo 4: A chamada real a rotina da biblioteca;
• Passo 5: Essa rotina normalmente escrita em assembly, coloca o número da 
chamada de sistema em um registrador e executa uma instrução TRAP para 
passar do modo usuário para o modo núcleo;
• Passo 6: Inicia a execução em um determinado endereço dentro do núcleo;
• Passo 7: Verifica o número da chamada de sistema e, então, o despacha para a 
rotina correta de tratamento ;
• Passo 8: É executada a rotina de tratamento;
• Passo 9: Retorna para a rotina da biblioteca no espaço do usuário;
• Passo 10: Retorna ao programa do usuário da mesma maneira que fazem as 
chamadas de rotina;
• Passo 11: Para finalizar a tarefa o programa do usuário deve limpar a pilha.
Modos de Acesso
Os sistemas operacionais restringem as operações executadas pelos programas (aplicações), por razões de segurança e
estabilidade. Por exemplo o acesso a dispositivos de hardware (disco, memória, etc ...). Muitas implementações de
segurança do núcleo de um SO e de acesso aos seus serviços utilizam o modo de acesso dos processadores.
O modos de acesso dos processadores é um mecanismo presente no hardware dos processadores:
No MODO USUÁRIO uma aplicação só pode executar instruções não privilegiadas, ou seja, instruções que não oferecem
riscos ao sistema.
No MODO KERNEL uma aplicação pode executar instruções não privilegiadas e privilegiadas, ou seja, instrução que
oferece risco ao sistema (exemplo: instruções que acessam dados no disco).
Modos de Acesso
Para que um programa (aplicação) possa escrever em uma área de memória onde encontra-se o sistema operacional, o
programa (aplicação) deve estar sendo executado com o processador no modo kernel.
Processos
O conceito mais central em qualquer sistema operacional é o processo: uma abstração de um programa em execução.
Eles mantém a capacidade de operações (pseudo)concorrentes, mesmo quando há apenas uma CPU disponível;
transformam uma única CPU em múltiplas CPUs virtuais; sem a abstração de processos, a ciência da computação
moderna não existiria.
Em um ambiente multiprogramado o sistema operacional gerencia os diversos programas executados e controla o
compartilhamento dos recursos por estes programas que são executados de forma concorrente. Para que isso aconteça
todo programa executado deve estar sempre associado a um processo. O conceito de processo é a base para a
implementação de um sistema multiprogramado.
Processos
A gerência de processos é uma das funções do sistema operacional, possibilitando a alocação de recursos aos
programas, o compartilhamento de dados e arquivos, a troca de informações entre programas e a sincronização de suas
tarefas. Tudo isso é feito através da gerência de processos. Em sistemas com múltiplos processadores existe a execução
simultânea de processos em diferentes processadores.
O processador quando executa instruções de um processo não sabe qual programa encontra-se em execução. O sistema
operacional é que deve implementar a concorrência entre programas gerenciando a alternância da execução de
instruções na UCP de forma controlada a segura. Para isso o sistema operacional faz uso do conceito de processos.
Processos
Um processo pode ser entendido como um programa em execução. Para que a execução simultânea de diversos
programas ocorra sem problemas é necessário que todas as informações do processo interrompido sejam salvas para
que quando este voltar a ser executado não lhe falte nenhuma informação e possa continuar a execução exatamente no
ponto onde estava quando foi interrompido.
O conceito de processo pode ser definido como sendo o conjunto de informações necessárias para que o sistema
operacional implemente a concorrência de programas.
A concorrência de programas é implementada através da alternância de processos sendo executados na UCP. A troca de
um processo por outro processo é feita pelo sistema operacional e é chamada por mudança de contexto. O conjunto de
informações de um processo é chamado de contexto do processo.
Estrutura de um Processo
Todo processo é formado por três partes:
• Contexto de hardware
• Contexto de software
• Espaço de endereçamento
Estrutura de um Processo
O contexto de hardware armazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso
específicos ( CI ou PC, stack pointer ). Quando um processo está em execução, o seu conteúdo de hardware está
armazenado nos registradores do processador.
O Contexto de software armazena informações sobre limites e características dos recursos que podem ser alocados
pelo processo, como o número máximo de arquivos abertos simultaneamente, prioridade de execução e tamanho do
buffer para operações de E/S. Estas características são determinadas no momento dacriação do processo e durante sua
execução.
Estrutura de um Processo
O Contexto de software é composto por três grupos de informações sobre o processo:
Identificação - Cada processo possui um identificador ( PID - process identification ) que é representado por um
número. O processo é identificado pelo sistema operacional através do PID. O processo também possui a identificação
do usuário ou processo que o criou ( owner ). Cada usuário possui uma identificação no sistema ( UID - User
identification ), atribuida ao processo no momento de sua criação.
Estrutura de um Processo
Quotas - As quotas são o limite de cada recurso do sistema que um processo pode alocar. Caso uma quota seja o
insuficiente o processo pode ser executado lentamente, ser interrompido ou até não ser executado. São exemplos de
quotas:
• Numero máximo de arquivos abertos
• Tamanho máximo da memória principal e secundária que pode ser alocada
• Número máximo de operações de E/S pendentes
• Tamanho máximo do buffer para operações de E/S
• Número máximo de processos
Privilégios - Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo, aos
demais processos e ao sistema operacional.
Estrutura de um Processo
O espaço de endereçamento é a área de memória pertencente ao processo onde instruções e dados do programa são
armazenados para execução. Cada processo possui seu próprio espaço de endereçamento que é protegido pelo sistema
operacional para que não haja acesso pelos demais processos em execução.
Bloco de Controle de um Processo
O processo é implementado pelo sistema operacional através de uma estrutura de dados chamada bloco de controle do
processo ( PCB - Process Control Block ). O sistema operacional, através do PCB, mantém todas as informações sobre o
contexto de hardware, contexto de software e espaço de endereçamento. Cada processo possui seu PCB que mantêm
todas as suas informações.
OS PCBS de todos os processos são mantidos na memória principal em uma área exclusiva do sistema operacional. O
tamanho desta área de memória é controlado por parâmetro no sistema operacional de acordo com o número máximo
de processos que podem ser suportados pelo sistema operacional.
Bloco de Controle de um Processo
Estados de um Processo
Em um sistema multiprogramado, os processos passam por vários estados durante a sua execução, em função de
eventos gerados pelo sistema operacional ou pelo próprio processo. Um processo ativo pode encontrar-se em um de
três diferentes estados:
Execução ( Running ) - Quando o processo está em execução pela UCP.
Pronto ( Ready ) - Quando o processo aguarda para ser executado. O sistema operacional determina a ordem e o
critério para que um processo em estado de pronto possa ter acesso ao processador. Este processo é chamado de
escalonamento de processos.
Espera ( wait ) - Quando o processo aguarda um evento externo ou por algum recurso para prosseguir seu
processamento. Por exemplo, o termino da gravação de um arquivo ou a espera de determinada hora para iniciar a
execução de processo.
Mudanças de Estado de um Processo
Um processo muda de estado durante seu processamento em virtude de eventos gerados pelo sistema operacional ou
pelo próprio processo. Existem quatro mudanças de estado que podem ocorrer a um processo:
Pronto -> Execução - Após ser criado o processo é colocado em uma lista de execução em estado de pronto onde fica
aguardando sua vez de ser executado.
Execução -> Espera - Um estado em execução passa para o estado de espera por eventos externos ou por eventos
gerados pelo próprio processo. Por exemplo, uma operação de entrada/saída.
Espera -> Pronto - Um processo em espera para o estado de pronto quando o recurso solicitado é concedido ou quando
a operação solicitada é concluída. Um estado em espera sempre terá que voltar ao estado de pronto antes de
prosseguir sua execução. Nenhum processo em espera passa diretamente para execução.
Execução -> Pronto - Um processo em execução passa para o estado de pronto por eventos gerados pelo sistema, como
o término da fatia de tempo que o processo possui para sua execução.
Swapping de Processos
Um processo em estado pronto ou de espera pode não estar na memória principal. Esta condição ocorre quando não há
espaço suficiente na memória principal para todos os processos. Neste caso, o contexto do processo é saldo em
memória secundária. Este mecanismo é chamado swapping e consiste em retirar processos da memória principal e os
trazer de volta à memória principal de acordo com critérios de cada sistema operacional.
Processos – Particularidades em Sistemas Operacionais de Tempo Real
O principal é que as rotinas de processamento em geral são bastante especializadas e curtas, pois devem executar a sua
tarefa no menor tempo possível. Há um forte paralelismo na execução das atividades e um estabelecimento de
prioridades, onde as atividades mais prioritárias interrompem as menos prioritárias e assumem o controle do
processador. A divisão de tarefas em rotinas especializadas requer que haja alguma forma de sincronismo ou troca de
informação entre elas, por exemplo, para que seja informado que tarefa já foi concluída ou não por outra rotina.
Algumas estruturas comuns para a troca de informações:
Semáforos ou flags: são definidos bits ou palavras para a sinalização do tipo booleano ( binário 0 ou 1) para a troca de
mensagens entre duas rotinas;
Áreas de troca de mensagens, filas ou buffers: memórias temporárias que com auxílio dos semáforos permitem a
transferência de estruturas de dados maiores entre as rotinas.
Processos – Particularidades em Sistemas Operacionais de Tempo Real
Restrições de Tempo: Toda tarefa computacional recebe um estímulo (ou evento), que pode ser interno ou externo,
realiza o processamento e produz uma saída. Um evento com restrição de tempo possui um tempo limite (máximo) de
processamento para que sua saída seja gerada.
Podemos citar alguns exemplos de eventos com restrições de tempo:
Um sensor de temperatura que gera um input para um microcontrolador, indicando que níveis críticos de temperatura
foram atingidos, para que o microcontrolador possa atuar sob o sistema de refrigeração. Se o microcontrolador não
atender às restrições de tempo do sensor de temperatura, a temperatura poderá atingir níveis críticos, e todo sistema
poderá se danificar. Este caso é normalmente chamado de “Hard Real-Time Systems”, ou numa tradução livre, Sistemas
de Tempo Real altamente restritivos.
Processos – Particularidades em Sistemas Operacionais de Tempo Real
Um sistema de radar aeroespacial, que recebe informações de posicionamento das aeronaves, para que possíveis
colisões sejam detectadas e evitadas. Se o sistema não tratar estas entradas dentro de suas restrições de tempo, poderá
causar uma tragédia. Este caso, assim como o caso anterior, também é chamado de “Hard Real-Time Systems”.
Um teclado que gera inputs de teclas pressionadas para um sistema microprocessado. Se o sistema não tratar estas
teclas dentro de suas restrições de tempo, o operador poderá ter a sensação de que o sistema “travou”, o que poderá
causar até a desistência da utilização do produto. Este caso é normalmente chamado de “Soft Real-Time Systems”, ou
Sistemas de Tempo Real levemente restritivos.
Processos – Particularidades em Sistemas Operacionais de Tempo Real
Podemos ver através dos exemplos acima que, se eventos com restrições de tempo não forem tratados de forma
correta, teremos consequências tão diversas quanto a percepção de baixa qualidade de um produto, a possibilidade de
queima de um equipamento ou até risco de morte!
Um Sistema de Tempo Real simplifica o projeto do produto e minimiza o risco de problemas com restrições temporais
através da divisão do sistema em pequenos elementos independentes chamados tarefas.
Referências
BALIEIRO, R. Sistemas Operacionais[BV:RE]. 1. Rio de Janeiro: SESES, 2015. Disponível em: http://repositorio.savaestacio.com.br/site/index.html#/objeto/detalhes/80FEA820-1CB5-4982-863F-25F09ADBDD0CCórdova Junior, Ramiro Sebastião. Sistemas Operacionais[BV:MB]. 1ª Edição. Porto Alegre:: SAGAH,, 2018.Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788595027336/cfi/1!/4/4@0.00:58.4
Deitel, Harvey M.; Deitel, Paul J.; Choffnes, David R. Sistemas Operacionais[BV:PE]. 3. São Paulo: Pearson Prentice Hall, 2005. Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/315/pdf
Francis Berenger Machado, Luiz Paulo Maia. Arquitetura de Sistemas Operacionais[BV:MB]. 5. ed. - [Reimpr.].. Rio de Janeiro: LTC, 2017. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/978-
85-216-2288-8/cfi/5!/4/4@0.00:0.00
Oliveira, Romulo Silva de. Sistemas Operacionais[BV:MB]. 4ª. Porto Alegre: Bookman, 2010. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788577806874/cfi/0!/4/4@0.00:0.00
Organizador, Paulo Henrique M. Bittencourt. Ambientes Operacionais[BV:PE]. 1. São Paulo: Pearson Education do Brasil, 2013. Disponível em:
https://plataforma.bvirtual.com.br/Acervo/Publicacao/21293#pageContent
Padro, Sergio. Sistemas de Tempo Real – Parte 1. Disponível em https://sergioprado.org/sistemas-de-tempo-real-part-1/, acessado em 11/08/2020.
Puhman, Henrique. Sistemas Operacionais de Tempo Real. Disponível em https://www.embarcados.com.br/sistemas-operacionais-de-tempo-real-rtos/, acessado em 11/08/2020.
Silberschatz, Abraham. Fundamentos de sistemas operacionais [BV:MB]. 9. ed. -. Rio de Janeiro: LTC, 2015. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/978-85-216-3001-
2/cfi/6/2!/4/2/2@0:0
Referências
Siqueira, Fernando. Sistemas Operacionais. Disponível em https://sites.google.com/site/proffernandosiqueiraso/aulas/5-processo, acessado em 11/08/2020.
Tanenbaum, Andrew S.; Bos, Herbert. Sistemas Operacionais Modernos[BV:PE]. 4. ed. São Paulo: Pearson Education do Brasil, 2016.Disponível em:
https://plataforma.bvirtual.com.br/Leitor/Publicacao/36876/pdf
UFPE. O Escalonamento de Tempo Real. Disponível em https://www.cin.ufpe.br/~if728/sistemas_tempo_real/livro_farines/cap2.pdf, acessado em 11/08/2020.

Continue navegando