![Page 1: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/1.jpg)
Introdução a Sistemas Operacionais
Carlos Eduardo Ba8sta
![Page 2: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/2.jpg)
Sistema Operacional • é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema, fornecendo uma interface entre o computador e o usuário. – É responsável por definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.
• Um grupo de desenvolvedores da AT&T criaram o Unix (UNICS) em 1969, sendo o primeiro sistema operacional moderno da computação. – Visavam solucionar o problema da incompa8bilidade de SOs de máquinas dis8ntas
![Page 3: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/3.jpg)
Sistema Operacional
• gerenciamento de processos; • gerenciamento de memória; • sistema de arquivos; • entrada e saída de dados.
![Page 4: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/4.jpg)
Sistema Operacional
• Tolerância a falhas • Desempenho • Disponibilidade • Segurança • Confiabilidade
![Page 5: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/5.jpg)
Sistema Operacional
• Tipos de SO – Real Time – Mono/mul8 usuário – Mono/mul8 tarefa
![Page 6: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/6.jpg)
![Page 7: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/7.jpg)
![Page 8: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/8.jpg)
![Page 9: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/9.jpg)
![Page 10: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/10.jpg)
![Page 11: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/11.jpg)
Mul8programação • O mecanismo de interrupções permite mul8plexar o processador entre várias a8vidades concorrentes. – Entre um programa e as entradas/saídas (I/O), – Esta capacidade de alternar a execução pode ser estendida a mul8plexação de vários programas residentes na memória.
• Execução concorrente de vários programas: – Permite o8mizar a u8lização do processador – ex.: Programa P1 acessa o disco e fica bloqueado enquanto o controlador de disco funciona; neste ínterim, o Programa 2 é executado pelo processador
![Page 12: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/12.jpg)
Memória Virtual
• Suplanta restrição imposta pelo tamanho da memória _sica, aumentando o grau de mul8programação
• Propriedade de localidade
![Page 13: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/13.jpg)
Processos
• Os Sistemas Operacionais atuais executam vários programas de forma concorrente, cada um dos quais se apoderando da CPU por uma determinada fa8a de tempo.
• O mecanismo de trocas rápidas entre os programa é chamado de mul$programação.
![Page 14: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/14.jpg)
Processos • Conceito
– Abstração de um programa em execução.
• As informações sobre o estado de execução de um programa cons8tuem o contexto de um processo.
• São elas: – Código do programa – Dados armazenados na memória – Pilha de execução – Conteúdo dos registradores – Descritores dos arquivos abertos
![Page 15: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/15.jpg)
![Page 16: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/16.jpg)
![Page 17: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/17.jpg)
Processos
Pilha
Heap
Código do Programa
Dados globais
Espaço de endereçamento
único.
![Page 18: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/18.jpg)
Processos int main() { int x, y, z; x = f1(10, 20); z = f3(50, 60); return 0; }
Parâmetros (p1, p2) Variáveis locais (a, b)
int f1(int p1, int p2) { int a = p1 + p2; int b = p1 * p2; return a + f2(a, b); }
Retorno da função Contador de programa (10324)
Endereço 10324
Parâmetros Variáveis locais
Retorno da função Contador de programa
f1()
f2()
Faz o mesmo para f3()
Apontador da pilha
End. do quadro anterior
![Page 19: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/19.jpg)
fork()
![Page 20: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/20.jpg)
Processos
• Chamadas de sistema – Meio pelo qual os programas de usuário conversam com o sistema operacional.
– Forma de “proteger” a máquina dos programas de usuário.
– Tipos de chamadas: • Gerenciamento de processos • Gerenciamento de arquivos • Gerenciamento do sistema de diretório
![Page 21: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/21.jpg)
Processos • O interior de um shell
![Page 22: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/22.jpg)
Processos
• Criação de processos – Quatro eventos principais mo8vam a criação de processos:
• Início do sistema. • Execução de uma chamada de sistema para criação de processo ( fork() ) por outro processo.
• Requisição do usuário. • Início de um job em lote.
![Page 23: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/23.jpg)
Processos
• Término de processos – Condições de término
• Saída normal (voluntária – chamada exit()). • Saída por erro (voluntária). • Erro fatal (involuntário). • Cancelamento por um outro processo (involuntário – chamada kill() ).
![Page 24: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/24.jpg)
Processos
Em execução
Pronto Bloqueado
1 2
4
3
1. O processo bloqueia aguardando uma E/S.
2. O escalonador seleciona outro processo.
3. O escalonador seleciona este processo. 4. A E/S torna-‐se disponível.
• Estados de um processo – Ciclo de vida
![Page 25: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/25.jpg)
Processos
Gerenciamento de processos Gerenciamento de memória Gerenciamento de arquivos
Registradores Contador de programa Palavra de estado do programa Ponteiro de pilha Estado do processo Prioridade Parâmetros de escalonamento Iden8ficador (ID) do processo Processo pai Grupos do processo Sinais Momento em que o processo iniciou Tempo usado da CPU Tempo de CPU do filho Momento do próximo alarme
Ponteiro para o segmento de código Ponteiro para o segmento de dados Ponteiro para o segmento de pilha
Diretório-‐raiz Diretório de trabalho Descritores de arquivo Iden8ficador (ID) do usuário Iden8ficador do grupo
� Implementação de processos
![Page 26: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/26.jpg)
Estados, ações, histórias e propriedades
• Estado – Consiste nos valores das variáveis do programa em um dado momento durante sua execução.
• Ações atômicas – Um processo executa uma sequência de instruções, as quais são implementadas por uma ou mais ações indivisíveis, denominadas ações atômicas.
![Page 27: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/27.jpg)
Estados, ações, histórias e propriedades
• Histórias – A execução de um programa concorrente resulta em um entrelaçamento (interleaving) de sequências de ações atômicas executadas pelos processos.
– Uma história é uma sequência de estados s0 à s1...à sn pela qual passa um programa corrente em uma execução qualquer.
![Page 28: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/28.jpg)
Estados, ações, histórias e propriedades
• Histórias P1
Begin I1; I2; I3;
End;
P2 Begin
I4; I5; I6;
End;
P1&P2 I1; I4; I5; I2; I3; I6;
� O número de histórias possíveis é de (n*m)!/(m!)^n
Onde, n = número de processos e m = número de instruções atômicas em cada processo.
![Page 29: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/29.jpg)
Estados, ações, histórias e propriedades
• Propriedades – Uma propriedade é um atributo válido para todas as possíveis histórias de um programa concorrente.
– Duas propriedades são desejadas em um soxware concorrente:
• Safety property • Liveness property
![Page 30: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/30.jpg)
Estados, ações, histórias e propriedades
• Safety property – Garante que o programa nunca entra em um estado indesejado, ou seja, um estado em que as variáveis tem valores indesejados.
– Falhas levam a um comportamento indesejado. – Exemplos
• Ausência de deadlock: Processos não deixam de executar, esperando por eventos que nunca ocorrem.
• Exclusão mútua: No máximo um processo executa uma região crí8ca.
![Page 31: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/31.jpg)
Estados, ações, histórias e propriedades
• Liveness property – Garante que o programa em algum momento entrará no estado desejado.
– Falhas levam à ausência de um comportamento esperado.
– Exemplo • Terminação: Um programa em algum momento terminará.
• Entrada eventual: Um processo aguardando entrar na região crí8ca.
![Page 32: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/32.jpg)
![Page 33: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/33.jpg)
![Page 34: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/34.jpg)
Ferramentas
• Tradutor: programa que transforma um programa fonte escrito numa linguagem em um programa equivalente escrito em uma linguagem diferente;
• Interpretador: tradutor que funciona em tempo de execução. Estes programas traduzem programas codificados em linguagem de alto nível para um código intermediário e o coloca em execução.
![Page 35: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/35.jpg)
• Pré-‐processador: programa que transforma um programa escrito em uma linguagem estendida em um programa equivalente escrito em linguagem original;
• Montador: tradutor que transforma um programa escrito em uma linguagem simbólica (de baixo nível) em instruções equivalentes em linguagem de máquina;
![Page 36: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/36.jpg)
• Linker: Aglu8nação de módulos objetos para composição de um programa executável. Carrega na memória principal um programa para ser executado.
• Depurador: Permite acompanhar a execução de um programa e detectar erros
• Interpretador de comandos ou shell: permite ao usuário interagir com o sistema
![Page 37: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/37.jpg)
Sistemas Operacionais Modernos
• Disposi8vos Fixos – Windows, Linux, OS X…
• Disposi8vos Móveis – Android, iOS, Windows Phone, Symbian,
![Page 38: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/38.jpg)
SO • Windows
– Microsox – Windows 10 – Xbox OS, Windows CE, Windows Phone…
• OS X – NeXTSTEP / BSD – Apple – XNU (kernel)
• Linux – Código aberto – Kernel monolí8co – Todos os 8pos de plataformas (móveis, supercomputadores etc.)
![Page 39: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/39.jpg)
SO -‐ Móveis
• 1996: lançado o Palm OS 2000: Microsox lança o Pocket PC2000
• 2003: Windows Mobile • 2005: Primeiros blackberry, Google compra Android • 2007: Chegada do Phone OS no mercado • 2008: Chegada do Android • 2009: Exis8a no mercado Android, BlackBerry, Windows Mobile, Samsung Bada 10, iPhone, HP Web OS
• 2010: Chegada do Windows Phone 7
![Page 40: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/40.jpg)
SO -‐ Móveis • Android
– Baseado em Linux (porém pode ser emulado em outros sistemas)
– Google / Open Handset Alliance – Android TV, Android Auto, Android Wear... – Maior market share – Open source – Android SDK – Gerência de memória RAM austera
• Responsividade e economia de energia – OpenGL
![Page 41: Introdução*a Sistemas* Operacionais*wiki.cbatista.net/lib/exe/fetch.php/ca-so-161.pdf · Processos* Gerenciamentodeprocessos Gerenciamentodememória2 Gerenciamentodearquivos Registradores*](https://reader034.vdocuments.pub/reader034/viewer/2022043009/5f9e6f176e38b90741417628/html5/thumbnails/41.jpg)
SO -‐ Móveis
• iOS – iPhone, iPod Touch, iPad, Apple TV – Core OS, Core Services, Media, Cocoa Touch – Darwin (BSD) / XNU – Objec8ve C / iOS SDK – Mul8tasking
• Windows Phone – Windows CE – Windows Phone