Escolar Documentos
Profissional Documentos
Cultura Documentos
Arquitetura Monolítica
Nesta arquitetura os componentes do sistema são compilados em módulos
separados e depois linkados em um único programa executável. Os módulos são
carregados em memória e interagem entre si, a manutenção deste tipo de
arquitetura é bem difícil
Arquitetura em camadas
Nesta arquitetura o sistema operacional é formado por níveis ou camadas onde as
camadas inferiores oferecem serviços às camadas superiores. As camadas
inferiores são privilegiadas
Máquina Virtual
Um sistema operacional é formado por níveis, onde a camada de nível mais baixo é
o hardware. Acima dessa camada temos o sistema operacional que oferece
serviços para os aplicativos do usuário.
Esta camada cria diversas máquinas virtuais independentes, onde cada uma
oferece uma cópia virtual do hardware, incluindo os modos de acesso, interrupções,
memória, dispositivos de entrada e saída, etc.
-Como cada máquina virtual é independente das outras, é possível que cada VM
tenha seu próprio sistema operacional
Arquitetura MicroKernel
Monoprogramados/Monotarefa
Este tipo de sistema operacional permite que apenas um programa seja
armazenado na memória para execução. Os demais programas devem aguardar o
término da execução do programa que está em memória. Todos os recursos do
computador permanecem exclusivamente dedicados ao único programa que está
em memória.
- A CPU não precisa ficar ociosa quando um processo não está sendo executada,
ela pode executar outro processo. O conjunto de processos são executados com
mais eficiência.
- O SO vai escalonando os processos - cada processo tem uma fatia de tempo para
ser executado.
- Multiprogramados = múltiplos processos em um único processador.
- Multiprocessados = múltiplos processos em múltiplos processadores.
- Preempção: SO multiprogramados podem tirar um processo da CPU porque já
acabou seu tempo de execução (mesmo que não tenha sido encerrado) para
executarem outro processo.
—-------------------------------------------------------------------------------------------------------------
Perspectiva Top-Down e Bottom-Up
Top-Down
A perspectiva Top Down se refere muito a comodidade que os SOs fornecem aos
usuários (programadores e processos). Utilizando os mesmos comandos em
diferentes arquiteturas e SO's é uma comodidade que a perspectiva Top Down
provê aos usuários.
Bottom-Up
Escalonamento e gerenciamento do hardware para melhorar o desempenho, feito
pelo sistema operacional
- Bottom Up: Como o Hardware enxerga o SO.A perspectiva Bottom Up pensa na
eficiência da CPU, para que a mesma não fique ociosa.
Programas
Um programa de computador é uma coleção passiva de instruções, enquanto que
um processo é a execução real dessas instruções
Execução de Programas
‣ Código (instruções)
Um programa necessita estar carregado em memória RAM para ser executado,
sendo assim, cada variável e cada instrução do programa está localizado em algum
endereço na memória.
O conteúdo da memória onde estão localizados os dados, está mudando
constantemente e o local onde estão armazenados os código, permanece sempre
com o mesmo conteúdo.
A execução do programa é feita instrução por instrução até que a instrução de
finalização do programa seja executada.
Processos
Um processo pode ser considerado como um programa em execução, também um
conjunto de informações necessárias para a concorrência de programas no sistema
operacional. Além disso, também pode ser entendido como o ambiente onde um
programa é executado.
Estados do Processo
3 tipos de estados:
O processo termina quando ele é pedido para termina, quando outro processo
substitui ele ou quando o usuário pede para ele terminar
Threads
Pull-based
Requer um meio, como um armazenamento para compartilhar os dados, isso
porque os processos que querem ler esses dados precisam dar um pull desses
dados. Neste caso os dados serão lidos através de um elemento intermediário,
como um repositório de dados,
Push-based
Neste caso os dados serão entregues diretamente ao processo que está realizando
a leitura, os IPC referente a esse grupo são:
● Signal
● Socket
● PIPE
● DBUS
Uma condição de corrida ocorre quando dois threads acessam uma variável
compartilhada ao mesmo tempo. O primeiro thread lê a variável e o segundo thread
lê o mesmo valor da variável.
1. Exclusão mútua:
2. Progressão: nenhuma thread fora da região crítica pode impedir outra thread
de entrar na região crítica (uma thread na região crítica deve proibir outra
thread de entrar na região crítica).
3. Espera limitada: uma thread não deve esperar infinitamente para entrar na
região crítica.
4. Hardware: não deve se considerar as características do hardware:
quantidade de núcleos, memória, etc. (precisa funcionar em qualquer
hardware).
DeadLock
● 1-Exclusão mútua
● 2-uso e espera
● 3-não preempção
● 4-espera circular
tática do avestruz
Escalonador e Algoritmos de Escalonamento
Deve-se ter cuidado com algumas variáveis como em casos que necessitam de
mais processamento. Como com processos que necessitam de processamento,
ocuparão a CPU por um tempo maior e não precisarão, ou de pouca intervenção do
usuário.
TaT=CT-AT WT=TaT-BT
ID AT BT Ct TAT WT
A 0 16 16 16 0
B 0 7 23 23 16
C 0 3 26 26 23
D 0
Shortest-Job-First
(Bt+Wr)/Bt
O algoritmo SJF é cooperativo, ou seja, uma vez que uma tarefa recebe o
processador, ela executa até encerrar (ou liberá-lo explicitamente). Em uma variante
preemptiva, o escalonador deve comparar a duração prevista de cada nova tarefa
que ingressa no sistema com o tempo de processamento restante das demais
tarefas presentes, inclusive aquela que está executando no momento
Round-Robin
Referências
Threads
https://www.devmedia.com.br/programacao-com-threads/6152
https://www.techtudo.com.br/noticias/2019/01/o-que-sao-threads-e-para-que-servem
-em-um-processador.ghtml
Micronúcleo
https://pt.wikipedia.org/wiki/Micronúcleo_(computação)#:~:text=Micronúcleo%2C%2
0ou%20microkernel%2C%20é%20uma,sistema"%20(kernel%20space).