Você está na página 1de 113

Sistema Operativo

Conferência 03
Estrutura do Sistema Operativo
Concorrência

@Domingos F. Oliveira

November 12, 2023


Introdução

 Os sistemas operativos podem ser vistos como um conjunto de roti-


nas que executam concorrentemente de forma ordenada;

2 of 50
Introdução

 Os sistemas operativos podem ser vistos como um conjunto de roti-


nas que executam concorrentemente de forma ordenada;
 A possibilidade do processador executar instrucoes em paralelo com
operacoes de E/S permite que diversas tarefas sejam executadas
concorrentemente;

2 of 50
Introdução

 Os sistemas operativos podem ser vistos como um conjunto de roti-


nas que executam concorrentemente de forma ordenada;
 A possibilidade do processador executar instrucoes em paralelo com
operacoes de E/S permite que diversas tarefas sejam executadas
concorrentemente;
 O conceito de concorrencia e o principio basico para o projeto dos
sistemas multi programados;

2 of 50
Introdução

 Os sistemas operativos podem ser vistos como um conjunto de roti-


nas que executam concorrentemente de forma ordenada;
 A possibilidade do processador executar instrucoes em paralelo com
operacoes de E/S permite que diversas tarefas sejam executadas
concorrentemente;
 O conceito de concorrencia e o principio basico para o projeto dos
sistemas multi programados;
 A utilização concorrente da CPU deve ser implementada de maneira
que, quando um programa perde o uso do processador e depois
retorna para continuar a sua execução, o seu estado deve ser idêntico
ao do momento em que foi interrompido.

2 of 50
Relembrar...

 Sistemas Operativo é um programa ou conjunto de programas as


quais a sua principal função é a gestão dos recursos de hardware
e software.

3 of 50
Relembrar...

 Sistemas Operativo é um programa ou conjunto de programas as


quais a sua principal função é a gestão dos recursos de hardware
e software.
 Sua função básica é de torna fácil o acesso aos recursos do sistema
+ partilhar os recursos de forma organizada e protegida.

3 of 50
Concorrência

4 of 50
Monopragramaveis x Multiprogramaveis

 Monopragramaveis

5 of 50
Monopragramaveis x Multiprogramaveis

 Monopragramaveis
 Apenas um programa sendo executado a cada vez;

5 of 50
Monopragramaveis x Multiprogramaveis

 Monopragramaveis
 Apenas um programa sendo executado a cada vez;
 Execução de um novo programa deve esperar o encerramento do pro-
grama sendo executado
 Multiprogramaveis

5 of 50
Monopragramaveis x Multiprogramaveis

 Monopragramaveis
 Apenas um programa sendo executado a cada vez;
 Execução de um novo programa deve esperar o encerramento do pro-
grama sendo executado
 Multiprogramaveis
 Permite a concorrência dos programas;

5 of 50
Monopragramaveis x Multiprogramaveis

 Monopragramaveis
 Apenas um programa sendo executado a cada vez;
 Execução de um novo programa deve esperar o encerramento do pro-
grama sendo executado
 Multiprogramaveis
 Permite a concorrência dos programas;
 Execução de novos programas inicia-se durante a execução de outros
programas.

5 of 50
Concorrência

 Os SO podem ser vistos como um conjunto de rotinas que executam


concorrentemente de forma ordenada;

6 of 50
Concorrência

 Os SO podem ser vistos como um conjunto de rotinas que executam


concorrentemente de forma ordenada;
 A possibilidade do processador executar instrucoes em paralelo com
operacoes de E/S permite que diversas tarefas sejam executadas
concorrentemente;

6 of 50
Concorrência

 Os SO podem ser vistos como um conjunto de rotinas que executam


concorrentemente de forma ordenada;
 A possibilidade do processador executar instrucoes em paralelo com
operacoes de E/S permite que diversas tarefas sejam executadas
concorrentemente;
 A utilização concorrente da CPU deve ser implementada de maneira
que, quando um programa perde o uso do processador e depois
retorna para continuar a sua execução, o seu estado deve ser idêntico
ao do momento em que foi interrompido.

6 of 50
Troca de contexto

 Mudança de um processo para outro faz-se com que todos os conteúdos


dos registadores seja trocado (estado do sistema);

7 of 50
Troca de contexto

 Mudança de um processo para outro faz-se com que todos os conteúdos


dos registadores seja trocado (estado do sistema);
 Quando um processo retorna à sua execução, todo o contexto ime-
diatamente anterior à sua saı́da deve ser recuperado.

7 of 50
Interrupção e Excepção

 Durante a execução de um programa, alguns eventos podem ocorrer


durante o seu processamento, obrigando a intervenção do sistema
operativo.

8 of 50
Interrupção e Excepção

 Durante a execução de um programa, alguns eventos podem ocorrer


durante o seu processamento, obrigando a intervenção do sistema
operativo.
 Esse tipo de intervenção é chamado interrupção ou excepção e
pode ser resultado da execução de instruções do próprio programa,
gerado pelo sistema operativo ou por algum dispositivo de hardware.

8 of 50
Interrupção

 É o mecanismo que o sistema operativo sincroniza a execução de


todas as suas rotinas e dos programas dos utilizadores, além de
controlar dispositivos.

9 of 50
Interrupção

 É o mecanismo que o sistema operativo sincroniza a execução de


todas as suas rotinas e dos programas dos utilizadores, além de
controlar dispositivos.
 Uma interrupção é gerada pelo SO ou por algum dispositivo e neste
caso, independente do programa que está a ser executado.

9 of 50
Interrupção

 É o mecanismo que o sistema operativo sincroniza a execução de


todas as suas rotinas e dos programas dos utilizadores, além de
controlar dispositivos.
 Uma interrupção é gerada pelo SO ou por algum dispositivo e neste
caso, independente do programa que está a ser executado.
 Um exemplo é quando um periférico avisa à CPU que está pronto
para transmitir algum dado. Neste caso, a CPU deve interromper o
programa para atender a solicitação do dispositivo.

9 of 50
Interrupção

 É o mecanismo que o sistema operativo sincroniza a execução de


todas as suas rotinas e dos programas dos utilizadores, além de
controlar dispositivos.
 Uma interrupção é gerada pelo SO ou por algum dispositivo e neste
caso, independente do programa que está a ser executado.
 Um exemplo é quando um periférico avisa à CPU que está pronto
para transmitir algum dado. Neste caso, a CPU deve interromper o
programa para atender a solicitação do dispositivo.
 Ao final da execução de cada instrução, a unidade de controle verifica
a ocorrência de algum tipo de interrupção.

9 of 50
Interrupção
 Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.

10 of 50
Interrupção
 Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
 Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.

10 of 50
Interrupção
 Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
 Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.
 Essas informações consistem no conteúdo registradores, que deverão
ser restaurados para a continuação do programa.

10 of 50
Interrupção
 Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
 Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.
 Essas informações consistem no conteúdo registradores, que deverão
ser restaurados para a continuação do programa.
 A interrupção é o mecanismo que permitiu a implementação da con-
corrência nos computadores, sendo o fundamento dos sistemas
multiprogramáveis.

10 of 50
Interrupção
 Neste caso, o programa em execução é interrompido e o controle
desviado para uma rotina responsável por tratar o evento ocorrido,
denominada rotina de tratamento de interrupção.
 Para que o programa possa posteriormente voltar a ser executado,
é necessário que, no momento da interrupção, um conjunto de in-
formações sobre a sua execução seja preservado.
 Essas informações consistem no conteúdo registradores, que deverão
ser restaurados para a continuação do programa.
 A interrupção é o mecanismo que permitiu a implementação da con-
corrência nos computadores, sendo o fundamento dos sistemas
multiprogramáveis.
 Inicialmente os sistemas operativos apenas implementavam o mecan-
ismo de interrupção. Com a evolução dos sistemas foi introduzido
o conceito de excepção.
10 of 50
Excepção

 Uma excepção é semelhante a uma interrupção, sendo a principal


diferença o motivo pela qual o evento é gerado.

11 of 50
Excepção

 Uma excepção é semelhante a uma interrupção, sendo a principal


diferença o motivo pela qual o evento é gerado.
 A diferença fundamental entre excepção e interrupção é que a primeira
é gerada por um evento sı́ncrono, enquanto a segunda é gerada por
eventos assı́ncronos.

11 of 50
Excepção

 Uma excepção é semelhante a uma interrupção, sendo a principal


diferença o motivo pela qual o evento é gerado.
 A diferença fundamental entre excepção e interrupção é que a primeira
é gerada por um evento sı́ncrono, enquanto a segunda é gerada por
eventos assı́ncronos.
 Um evento sı́ncrono quando é resultado direto da execução do pro-
grama corrente.

11 of 50
Rotina de tratamento de excepção em Java

12 of 50
Interrupção e Excepção

 Intervenção do SO na execução de um programa é devido à ocorrência


de um evento;

13 of 50
Interrupção e Excepção

 Intervenção do SO na execução de um programa é devido à ocorrência


de um evento;
 Causas da interrupção e excepção:
 Resultado da execução de instruções de um programa (Excepção);
 Gerado pelo sistema operativo (Interrupção);
 Gerado por algum dispositivo de hardware (Interrupção)

13 of 50
Interrupção e Excepção

 Intervenção do SO na execução de um programa é devido à ocorrência


de um evento;
 Causas da interrupção e excepção:
 Resultado da execução de instruções de um programa (Excepção);
 Gerado pelo sistema operativo (Interrupção);
 Gerado por algum dispositivo de hardware (Interrupção)
 O fluxo da execução do programa é desviado para uma rotina espe-
cial de tratamento

13 of 50
Interrupção e Excepção

14 of 50
Operações de Entrada/Saı́da

 Em sistemas mais primitivos, a comunicação entre a CPU e os


periféricos era controlada por um conjunto de instruções especiais,
denominadas instruções de entrada/saı́da, executadas pela própria
CPU.

15 of 50
Operações de Entrada/Saı́da

 Em sistemas mais primitivos, a comunicação entre a CPU e os


periféricos era controlada por um conjunto de instruções especiais,
denominadas instruções de entrada/saı́da, executadas pela própria
CPU.
 Essas instruções continham detalhes especı́ficos de cada periférico,
como quais trilhas e sectores de um disco deveriam ser lidos ou
gravados em determinado bloco de dados.

15 of 50
Operações de Entrada/Saı́da

 Em sistemas mais primitivos, a comunicação entre a CPU e os


periféricos era controlada por um conjunto de instruções especiais,
denominadas instruções de entrada/saı́da, executadas pela própria
CPU.
 Essas instruções continham detalhes especı́ficos de cada periférico,
como quais trilhas e sectores de um disco deveriam ser lidos ou
gravados em determinado bloco de dados.
 Esse tipo de instrução limitava a comunicação do processador a um
grupo particular de dispositivos.

15 of 50
Operações de Entrada/Saı́da

 Em sistemas mais primitivos, a comunicação entre a CPU e os


periféricos era controlada por um conjunto de instruções especiais,
denominadas instruções de entrada/saı́da, executadas pela própria
CPU.
 Essas instruções continham detalhes especı́ficos de cada periférico,
como quais trilhas e sectores de um disco deveriam ser lidos ou
gravados em determinado bloco de dados.
 Esse tipo de instrução limitava a comunicação do processador a um
grupo particular de dispositivos.
 A implementação de um dispositivo chamado controlador ou inter-
face permitiu à CPU agir de maneira independente dos dispositivos
de E/S.

15 of 50
Operações de entrada/saı́da

A CPU se comunicava com os periféricos, através do controlador.

16 of 50
Operações de entrada/saı́da
 Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.

17 of 50
Operações de entrada/saı́da
 Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
 Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);

17 of 50
Operações de entrada/saı́da
 Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
 Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);
 O conceito de DMA possibilitou o surgimento do canal de en-
trada/saida introduzido pela IBM.

17 of 50
Operações de entrada/saı́da
 Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
 Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);
 O conceito de DMA possibilitou o surgimento do canal de en-
trada/saida introduzido pela IBM.
 O canal e um processador com capacidade de executar programas
de E/S, permitindo o controle total sobre operacoes de E/S.

17 of 50
Operações de entrada/saı́da
 Com a implementação do mecanismo de interrupção no hardware
dos computadores, as operações de E/S puderam ser realizadas de
uma forma mais eficiente.
 Outra técnica que permitia que bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da CPU, excepto no inı́cio
e no final da transferência é a técnica de DMA (Direct Memory
Access);
 O conceito de DMA possibilitou o surgimento do canal de en-
trada/saida introduzido pela IBM.
 O canal e um processador com capacidade de executar programas
de E/S, permitindo o controle total sobre operacoes de E/S.
 O canal atua como um elo entre o processador e o controlador.

17 of 50
Cnal de Entrada e Saı́da

18 of 50
Buffering

 A técnica de buffering consiste na utilização de uma área de memória


para a transferência de dados entre os periféricos e a memória prin-
cipal denominada buffer.

19 of 50
Buffering

 A técnica de buffering consiste na utilização de uma área de memória


para a transferência de dados entre os periféricos e a memória prin-
cipal denominada buffer.
 O buffering veio permitir que, quando um dado fosse transferido
para o buffer após uma operação de leitura, o dispositivo de entrada
pudesse iniciar uma nova leitura.

19 of 50
Buffering

 A técnica de buffering consiste na utilização de uma área de memória


para a transferência de dados entre os periféricos e a memória prin-
cipal denominada buffer.
 O buffering veio permitir que, quando um dado fosse transferido
para o buffer após uma operação de leitura, o dispositivo de entrada
pudesse iniciar uma nova leitura.
 O objetivo do buffering é manter, na maior parte do tempo, a CPU
e dispositivos de E/S ocupados.

19 of 50
Buffering

20 of 50
Spooling

 A técnica de spooling (simultaneous peripheral operation on-line)


foi introduzida no final dos anos 50 para aumentar a produtividade
e a eficiência dos sistemas operativos.

21 of 50
Spooling

 A técnica de spooling (simultaneous peripheral operation on-line)


foi introduzida no final dos anos 50 para aumentar a produtividade
e a eficiência dos sistemas operativos.
 Um exemplo dessa técnica está presente quando as impressoras são
utilizadas;

21 of 50
Spooling

 A técnica de spooling (simultaneous peripheral operation on-line)


foi introduzida no final dos anos 50 para aumentar a produtividade
e a eficiência dos sistemas operativos.
 Um exemplo dessa técnica está presente quando as impressoras são
utilizadas;
 No momento em que um comando de impressão é executado por
um programa, as informações que serão impressas são gravadas num
arquivo em disco (arquivo de spool), para ser impresso posterior-
mente pelo sistema.

21 of 50
Spooling

22 of 50
Spooling

 Actualmente, a técnica de spooling é implementada na maioria dos


sistemas operativos;

23 of 50
Spooling

 Actualmente, a técnica de spooling é implementada na maioria dos


sistemas operativos;
 Fazendo com que tanto a CPU quanto os dispositivos de E/S seja
aproveitado de forma mais eficiente;

23 of 50
Spooling

 Actualmente, a técnica de spooling é implementada na maioria dos


sistemas operativos;
 Fazendo com que tanto a CPU quanto os dispositivos de E/S seja
aproveitado de forma mais eficiente;
 O uso do spooling permite desvincular o programa do dispositivo
de impressao, impedindo que um programa reserve a impressora
para uso exclusivo;

23 of 50
Spooling

 Actualmente, a técnica de spooling é implementada na maioria dos


sistemas operativos;
 Fazendo com que tanto a CPU quanto os dispositivos de E/S seja
aproveitado de forma mais eficiente;
 O uso do spooling permite desvincular o programa do dispositivo
de impressao, impedindo que um programa reserve a impressora
para uso exclusivo;
 O SO e responsavel por gerir a sequencia de impressoes solicitadas
pelos programas, seguindo criterios que garantam a seguranca e
ouso eficiente das impressoras.

23 of 50
Reentrância

24 of 50
Reentrância

 É comum, em sistemas multiprogramáveis, vários utilizadores exe-


cutarem uma mesmas tarefas do sistema operativo simultaneamente,
como, por exemplo, um editor de textos.

25 of 50
Reentrância

 É comum, em sistemas multiprogramáveis, vários utilizadores exe-


cutarem uma mesmas tarefas do sistema operativo simultaneamente,
como, por exemplo, um editor de textos.
 Se cada utilizador que utilizasse o editor trouxesse o código do aplica-
tivo para a memória, haveria diversas cópias de um mesmo programa
na memória principal, o que ocasionaria um desperdı́cio de espaço.

25 of 50
Reentrância

 É comum, em sistemas multiprogramáveis, vários utilizadores exe-


cutarem uma mesmas tarefas do sistema operativo simultaneamente,
como, por exemplo, um editor de textos.
 Se cada utilizador que utilizasse o editor trouxesse o código do aplica-
tivo para a memória, haveria diversas cópias de um mesmo programa
na memória principal, o que ocasionaria um desperdı́cio de espaço.
 Reentrância é a capacidade de um código de programa (código reen-
trante) poder ser partilhado por diversos utilizadores, exigindo que
apenas uma cópia do programa esteja na memória.

25 of 50
Reentrância

 Uma caracterı́stica da reentrância é que o código não pode ser mod-


ificado por nenhum utilizador no momento em que está a ser exe-
cutado.

26 of 50
Reentrância

 Uma caracterı́stica da reentrância é que o código não pode ser mod-


ificado por nenhum utilizador no momento em que está a ser exe-
cutado.
 A reentrância permite que cada utilizador possa estar num ponto
diferente do código reentrante, manipulando dados próprios, exclu-
sivos de cada utilizador.

26 of 50
Protecção do sistemas

 Nos sistemas multi-programáveis, onde diversos utilizadores com-


partilham os mesmo recursos, deve existir uma preocupação, por
parte do sistema operativos, de garantir a integridade dos dados
pertencentes a cada utilizado;

27 of 50
Protecção do sistemas

 Nos sistemas multi-programáveis, onde diversos utilizadores com-


partilham os mesmo recursos, deve existir uma preocupação, por
parte do sistema operativos, de garantir a integridade dos dados
pertencentes a cada utilizado;
 Problemas como um programa acessar a área de memória perten-
cente a outro programa ou ao próprio sistema operativo tornaria o
sistema pouco confiável;

27 of 50
Protecção do sistemas

 Nos sistemas multi-programáveis, onde diversos utilizadores com-


partilham os mesmo recursos, deve existir uma preocupação, por
parte do sistema operativos, de garantir a integridade dos dados
pertencentes a cada utilizado;
 Problemas como um programa acessar a área de memória perten-
cente a outro programa ou ao próprio sistema operativo tornaria o
sistema pouco confiável;
 Para isso, todo sistema implementa algum tipo de protecção aos di-
versos recursos que são compartilhados, como memória, dispositivos
de E/S e CPU.

27 of 50
Protecção do sistemas

 Há outro problema quando um programa reserva um periférico para


realizar alguma operação. Nestas situações, como, por exemplo, na
utilização de uma impressora, nenhum outro programa deve interferir
até que o programa libere.

28 of 50
Protecção do sistemas

 Há outro problema quando um programa reserva um periférico para


realizar alguma operação. Nestas situações, como, por exemplo, na
utilização de uma impressora, nenhum outro programa deve interferir
até que o programa libere.
 Para solucionar esses diversos problemas, o sistema operativo deve
implementar mecanismos de protecção que controlem o acesso con-
corrente aos diversos recursos do sistema.

28 of 50
Protecção do sistemas

 Há outro problema quando um programa reserva um periférico para


realizar alguma operação. Nestas situações, como, por exemplo, na
utilização de uma impressora, nenhum outro programa deve interferir
até que o programa libere.
 Para solucionar esses diversos problemas, o sistema operativo deve
implementar mecanismos de protecção que controlem o acesso con-
corrente aos diversos recursos do sistema.
 Esse mecanismo de protecção, implementado na maioria dos sis-
temas multi-programáveis, é denominado modos de acesso.

28 of 50
 Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um sistema operativo, pois ele nao e executado
como uma aplicacao tipicamente sequencial, com inicio, meio e fim.

29 of 50
 Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um sistema operativo, pois ele nao e executado
como uma aplicacao tipicamente sequencial, com inicio, meio e fim.
 As rotinas do sistema sao executadas sem uma ordem predefinida,
baseada em eventos dissociados do tempo (eventos assincronos).

29 of 50
 Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um sistema operativo, pois ele nao e executado
como uma aplicacao tipicamente sequencial, com inicio, meio e fim.
 As rotinas do sistema sao executadas sem uma ordem predefinida,
baseada em eventos dissociados do tempo (eventos assincronos).
 Muitos desses eventos estao relacionados ao hardware e tarefas in-
ternas do proprio sistema operativo.

29 of 50
Estrutura do Sistema Operativo

30 of 50
Estrutura do Sistema Operativo

 O sistema operativo e formado por um conjunto de rotinas (proced-


imentos) que oferecem servicos aos utilizador do sistema e as suas
aplicacoes, bem como a outras rotinas do proprio sistema.

31 of 50
Estrutura do Sistema Operativo

 O sistema operativo e formado por um conjunto de rotinas (proced-


imentos) que oferecem servicos aos utilizador do sistema e as suas
aplicacoes, bem como a outras rotinas do proprio sistema.
 Esse conjunto de rotinas é chamado núcleo do sistema, ou kernel.

31 of 50
Estrutura do Sistema Operativo

 O sistema operativo e formado por um conjunto de rotinas (proced-


imentos) que oferecem servicos aos utilizador do sistema e as suas
aplicacoes, bem como a outras rotinas do proprio sistema.
 Esse conjunto de rotinas é chamado núcleo do sistema, ou kernel.
 Há algumas maneiras dos utilizadores interagirem com o Kernel:
1. Por intermédio das rotinas do sistema, realizadas por aplicações;
2. Utilitários ou linguagens de comandos

31 of 50
Funções do Kernel

 tratamento de interrupção;
 criação e eliminação de processos;
 sincronização escalonamento e controle dos processos;
 gestão de memoria;
 gestão do sistema de arquivos;
 operações de entrada e saida;
 tem contabilização e segurança do sistema.

32 of 50
System Calls
 Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.

33 of 50
System Calls
 Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.
 Caso uma aplicação, que tenha acesso ao núcleo, realize uma operação
que o danifique, todo o sistema poderá ficar comprometido e inop-
erante.

33 of 50
System Calls
 Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.
 Caso uma aplicação, que tenha acesso ao núcleo, realize uma operação
que o danifique, todo o sistema poderá ficar comprometido e inop-
erante.
 O utilizador, quando deseja solicitar algum serviço do sistema, realiza
uma chamada a um dos seus serviços por system calls (chamadas
ao sistema), que são a porta de entrada para se ter acesso ao núcleo
do sistema operativo.

33 of 50
System Calls
 Uma preocupação que surge na grande maioria dos sistemas oper-
ativos é a implementação de mecanismos de proteção do sistema e
de acesso aos seus serviços.
 Caso uma aplicação, que tenha acesso ao núcleo, realize uma operação
que o danifique, todo o sistema poderá ficar comprometido e inop-
erante.
 O utilizador, quando deseja solicitar algum serviço do sistema, realiza
uma chamada a um dos seus serviços por system calls (chamadas
ao sistema), que são a porta de entrada para se ter acesso ao núcleo
do sistema operativo.
 Para cada serviço existe um system call associada e cada sistema
operativo tem o seu próprio conjunto de chamadas, com nomes,
parâmetros e formas de activação especı́ficas.

33 of 50
System Calls

34 of 50
System Calls

 Através dos parâmetros fornecidos no system call, a solicitação é


processada e uma resposta é retornada à aplicação, em um dos
parâmetros fornecidos na chamada.

35 of 50
System Calls

 Através dos parâmetros fornecidos no system call, a solicitação é


processada e uma resposta é retornada à aplicação, em um dos
parâmetros fornecidos na chamada.
 O mecanismo de activação e comunicação entre a aplicação e o
sistema é semelhante ao mecanismo implementado quando um pro-
grama modularizado activa um dos seus procedimentos ou funções.

35 of 50
Os system call podem ser divididas
 Gestão de processos
 Criação e eliminação de processos;
 Alteração das caracterı́sticas do processo;
 Sincronização e comunicação entre processo.
 Gestão de memória
 Alocação e desalocação de memória.
 Gestão de E/S
 Operação de entrada/saida em periféricos;
 Manipulação de arquivos e diretorios.
 Manutenção de informação
 Obter/actualizar – data e hora;
 Informar numero de utilizadores;
 Informar versão do SO;
 Apresentar quantidade de memória disponı́vel; Etc..

36 of 50
Modos de Acesso

1. Existem certas instruções que não podem ser colocadas directamente


à disposição das aplicações, pois a sua utilização indevida ocasionaria
sérios problemas à integridade do sistema.

37 of 50
Modos de Acesso

1. Existem certas instruções que não podem ser colocadas directamente


à disposição das aplicações, pois a sua utilização indevida ocasionaria
sérios problemas à integridade do sistema.
2. Suponha que uma aplicação deseja atualizar um arquivo diretamente
no disco.

37 of 50
Modos de Acesso

1. Existem certas instruções que não podem ser colocadas directamente


à disposição das aplicações, pois a sua utilização indevida ocasionaria
sérios problemas à integridade do sistema.
2. Suponha que uma aplicação deseja atualizar um arquivo diretamente
no disco.
3. O programa por si só não pode especificar diretamente as instruções
que acessam os seus dados.

37 of 50
Modos de Acesso

1. Existem certas instruções que não podem ser colocadas directamente


à disposição das aplicações, pois a sua utilização indevida ocasionaria
sérios problemas à integridade do sistema.
2. Suponha que uma aplicação deseja atualizar um arquivo diretamente
no disco.
3. O programa por si só não pode especificar diretamente as instruções
que acessam os seus dados.
4. Como o disco é um recurso compartilhado, a sua utilização deverá
ser realizada unicamente pelo sistema operativo.

37 of 50
Modos de Acesso

1. Existem certas instruções que não podem ser colocadas directamente


à disposição das aplicações, pois a sua utilização indevida ocasionaria
sérios problemas à integridade do sistema.
2. Suponha que uma aplicação deseja atualizar um arquivo diretamente
no disco.
3. O programa por si só não pode especificar diretamente as instruções
que acessam os seus dados.
4. Como o disco é um recurso compartilhado, a sua utilização deverá
ser realizada unicamente pelo sistema operativo.
5. As instruções que podem comprometer a segurança e integridade do
sistema são chamadas de instruções privilegiadas, enquanto as não
privilegiadas são as que não oferecem perigo ao sistema.

37 of 50
Modos de Acesso

 Para que uma aplicação possa executar uma instrução privilegiada,


o processador implementa o mecanismo de modos de acesso.

38 of 50
Modos de Acesso

 Para que uma aplicação possa executar uma instrução privilegiada,


o processador implementa o mecanismo de modos de acesso.
 Existem basicamente dois modos de acesso implementados pelo pro-
cessador:
 modo utilizador
 modo kernel.

38 of 50
Modos de Acesso

 Para que uma aplicação possa executar uma instrução privilegiada,


o processador implementa o mecanismo de modos de acesso.
 Existem basicamente dois modos de acesso implementados pelo pro-
cessador:
 modo utilizador
 modo kernel.
 Quando um processador trabalha no modo utilizador, uma aplicação
só pode executar instruções não privilegiadas, tendo acesso a um
número reduzido de instruções, enquanto no modo kernel a aplicação
pode ter acesso ao conjunto total de instruções do processador.

38 of 50
Interpretador de comandos

 O SO executa suas funções seguindo as ordens que o utilizador.

39 of 50
Interpretador de comandos

 O SO executa suas funções seguindo as ordens que o utilizador.


 O SO reúne os recursos necessérios, e activa o módulo responsável
pela realização da tarefa. O processador de comandos consiste em
alguns módulos, cada um dos quais executa uma unica tarefa.

39 of 50
Interpretador de comandos

 O SO executa suas funções seguindo as ordens que o utilizador.


 O SO reúne os recursos necessérios, e activa o módulo responsável
pela realização da tarefa. O processador de comandos consiste em
alguns módulos, cada um dos quais executa uma unica tarefa.
 O programa mais importante para o SO e o interpretador de coman-
dos.

39 of 50
Interpretador de comandos

 O SO executa suas funções seguindo as ordens que o utilizador.


 O SO reúne os recursos necessérios, e activa o módulo responsável
pela realização da tarefa. O processador de comandos consiste em
alguns módulos, cada um dos quais executa uma unica tarefa.
 O programa mais importante para o SO e o interpretador de coman-
dos.
 Cabe a ele interpretar os comandos pedidos pelo utilizador e encam-
inhar a execução do programa adequado para tal tarefa.

39 of 50
Tipos de Estrutura de Sistemas Operativos

 Vamos examinar quatro maneiras diferentes de se estruturar um sis-


tema operativo, do modo a formar uma ideia a respeito do espectro
de possibilidades.

40 of 50
Arquitectura Monolı́tica

 Apesar da estrutura monolı́tica ser de longe a mais utilizada, ela poderia muito
bem ser chamada de “a grande confusão”.
 Simplesmente não há estruturação visı́vel na organização monolı́tica.
 O sistema operativo é escrito como um conjunto de procedimentos, cada um dos
quais podendo chamar qualquer dos demais sempre que necessário.
 Quando esta técnica é usada, cada procedimento do sistema deve ter uma in-
terface bem definida em termos de parâmetros e de resultados, sendo, conforme
mencionado anteriormente, cada procedimento livre para chamar qualquer outro
se este último realizar algo de que o primeiro necessite.
 Ex. MS-DOS, UNIX

41 of 50
Arquitectura Monolı́tica

42 of 50
Arquitectura de Camadas

 Um sistema em camadas divide o sistema operativo em camadas


sobrepostas. Cada módulo oferece um conjunto de funções que
podem ser utilizadas por outros módulos. Módulos de uma camada
podem fazer referência apenas a módulos das camadas inferiores.
 A vantagem da estruturação em camadas é isolar as funções do
sistema operativo, facilitando sua alteração e depuração, além de
criar uma hierarquia de nı́veis de modos de acesso, protegendo as
camadas mais internas.

43 of 50
Arquitectura de Camadas

44 of 50
Arquitectura Cliente Servidor
 Uma tendência dos sistemas operativos modernos é tornar o núcleo
do sistema o menor e mais simples possı́vel.
 Para implementar esta ideia, o sistema é dividido em processos,
sendo cada um responsável por oferecer um conjunto de serviços,
como serviços de arquivos, serviços de criação de processos, serviços
de memória, serviços de escalonamento, etc.
 Sempre que uma aplicação deseja algum serviço, ela solicita ao pro-
cesso responsável. Neste caso, a aplicação que solicita um serviço é
chamada de cliente, enquanto o processo que responde à solicitação
é chamado servidor. Um cliente, que pode ser uma aplicação de um
utilizador ou um outro componente do sistema operativo, solicita
um serviço enviando uma mensagem para o servidor.
 O servidor responde ao cliente através de uma outra mensagem. É
função do núcleo do sistema realizar a comunicação ou seja, a troca
de mensagens entre o cliente e o servidor.
45 of 50
Arquitectura Cliente Servidor

A utilização deste modelo permite que os servidores executem em


modo utilizador, ou seja, não tenham acesso direito a certos
componentes do sistema. Apenas o núcleo do sistema, responsável
pela comunicação entre clientes e servidores, executa no modo kernel.
46 of 50
Máquina Virtual
 Um sistema de compartilhamento de tempo deve fornecer:
 ambiente para multiprogramação;
 uma máquina estendida com uma interface mais conveniente que o
hardware.
 O coração conhecido como monitor da máquina virtual, roda sobre
o hardware, e implementa a multiprogramação, fornecendo não só
uma, mas várias máquinas virtuais para o nı́vel acima dele.
 Porém, ao contrário dos demais sistemas operativos, estas máquinas
não são máquinas estendidas, com sistemas de arquivos e outras
caracterı́sticas agradáveis e convenientes ao utilizador.
 Em vez disso, elas são cópias fiéis do hardware, incluindo os modos
kernel/utilizador, entrada/saı́da, interrupções, e tudo o mais que
uma máquina real possui.

47 of 50
Arquitectura Microkernel

 Micro-kernel é um termo usado para caracterizar o sistema cujas


funcionalidades do sistema saı́ram do kernel e foram para servidores,
que se comunicam com um núcleo mı́nimo, usando o mı́nimo possı́vel
o ”espaço do sistema” (nesse local o programa tem acesso a todas
as instruções e a todo o hardware) e deixando o máximo de recur-
sos rodando no ”espaço do utilizador” (no espaço do utilizador, o
software sofre algumas restrições, não podendo acessar alguns hard-
wares, nem tem acesso a todas as instruções).

48 of 50
Processos
 Um conceito chave da teoria dos sistemas operativos é o conceito
de processo;

49 of 50
Processos
 Um conceito chave da teoria dos sistemas operativos é o conceito
de processo;
 Um processo é basicamente um programa em execução, sendo con-
stituı́do do código executável, dos dados referentes ao código.

Chamadas de Sistema
 Os programas de utilizador solicitam serviços do sistema operativos
através da execução de chamadas de sistema.

49 of 50
Processos
 Um conceito chave da teoria dos sistemas operativos é o conceito
de processo;
 Um processo é basicamente um programa em execução, sendo con-
stituı́do do código executável, dos dados referentes ao código.

Chamadas de Sistema
 Os programas de utilizador solicitam serviços do sistema operativos
através da execução de chamadas de sistema.
 A cada chamada corresponde um procedimento de uma biblioteca
de procedimentos que o programa do utilizador pode chamar.

49 of 50
Duvidas ???

”O lucro do nosso estudo é tornarmo-nos melhores e mais sábios.”


Michel de Montaigne
50 of 50

Você também pode gostar