Escolar Documentos
Profissional Documentos
Cultura Documentos
Capítulo 2
Patrício Domingues
ESTG/IPLeiria
2024
O papel de um SO
✓Um computador é um conjunto de recursos
orientadas para o movimento, armazenamento e
processamento de dados
– O SO é responsável pela gestão desses recursos
3
Kernel do Linux
✓Linhas de código do kernel do Linux
– 2022: 27.8 milhões de linhas de código
– Quanto mais linhas de código, mais bugs…
– Fonte:
https://blog.grimm-co.com/2021/03/new-old-bugs-in-linux-kernel.html 5
Principais objetivos de um SO
✓ Conveniência
– Facilitar a vida ao utilizador/programador
✓ Eficiência
– Uso eficiente dos recursos do sistemas
▪ Maximizar o aproveitamento dos recursos (CPU, memória, disco,...)
http://ainkaboot.co.uk/cluster-architecture.php
(c) Patricio Domingues
21
✓Exemplo
– Software de monitorização de uma renderfarm
https://www.youtube.com/watch?v=hUMOmxK_hf0
22
Evolução
http://tinyurl.com/mtypsd8k 24
SO multiutilizador/timesharing (#1)
✓ SO permite o uso simultâneo de
vários utilizadores
– Utilizadores ligados em sessões
separadas
– O tempo de CPU é partilhado pelos
utilizadores
▪ Timesharing = tempo compartilhado
– Tarefas interativas deve ser tratadas
rapidamente
▪ Curto tempo de resposta
– Empregues inicialmente em sistemas de
grande porte
▪ IBM OS 360, multics (anos 1960)
– Atualmente
▪ servidores de ficheiros, de bases de dados,
servidores web, cloud (c) Patricio Domingues
25
SO multiutilizador/timesharing (#2)
✓ Exemplo de servidor timesharing
– IBM mainframe Z-serie
✓ z15 suporta
– Capacidade > 12 x 109 transações cifradas
por dia
– Até 40 TiB de memória RAM
– NOTA: Importante manter os dados cifrados para
proteção de dados (RGPD)
✓ 23 dos 25 maiores vendedores usam
mainframe
✓ 92 dos 100 maiores bancos usam mainframe
✓Áreas de aplicação
– Sistemas de suporte de vida (“e-care”)
– Sistemas de controlo industrial
– Sistemas de comunicações
– Sistemas de controlo de tráfego aéreo, aeronaves
– Sistemas de controlo de motores
– Deteção de fraude financeira (clonagem de cartões,etc.)
– Robótica, exploração espacial
– Etc.
30
Sistemas SCADA (#1)
• SCADA
– Supervisory Control and
Data Acquisition
– Sistema de controlo e
monitorização
– Empregue em processos
industriais, energia e
infraestrutura crítica https://ih1.dpstele.com/images/scadasys.png
• Fonte: Brad S, Murar M, Vlad G, Brad E, Popanton M. Lifecycle Design of Disruptive SCADA Systems
for Waste-Water Treatment Installations. Sustainability. 2021; 13(9):4950.
https://doi.org/10.3390/su13094950 32
Máquinas virtuais
✓Definição de máquina virtual
– Implementação via software de uma máquina (por
exemplo, um computador) que executa programas /
processos
✓Existem dois tipos de máquinas virtuais
– Máquina virtual software
– Máquina virtual sistema
✓(+) Portabilidade
– Código pode ser executado em qualquer máquina
física/SO, desde que exista uma implementação da
máquina virtual para o SO em causa
✓(+) Programação
– As máquinas virtuais software disponibilizam várias
funcionalidades que facilitam a programação
▪ Gestão de memória dinâmica, mecanismos de threading e
sincronização, ...
✓(-) Lentidão
– Código é interpretado, o que torna a sua execução mais
demorada
(c) Patricio Domingues
36
Exemplo: java e bytecode (1)
1. Escrita do código
java (.java)
2. Compilação: o http://bit.ly/9QKMtO
compilador cria
uma representação
em bytecode
3. O bytecode é
executado na Java
Virtual Machine https://bit.ly/2wkagwY
(JVM)
Fonte: wikipedia
- Eficiência
▪ A máquina virtual deve providenciar um desempenho similar ao das máquinas
físicas
- Gestão de recursos
▪ A máquina virtual deve ter pleno controlo sobre os recursos que implementa (e.g.
disco virtuais, rede virtual, etc.)
▪ A máquina virtual deve isolar as aplicações do sistema operativo hospedeiro
Fonte: Diogo Ferreira (U. Coimbra)
59
Docker (#3)
• Diferença entre… • (continua)
– Imagem (ficheiro) – Contentor
e • Imagem instanciada que se
encontra em execução
– Contentor (instância)
– A partir de uma mesma
• Imagem imagem é possível criar N
– Ficheiro ou conjunto de contentores…
ficheiros que quando
executados no ambiente
docker dão origem a um
contentor
– Representa uma aplicação
• E.g.: servidor de bases de
dados + servidor HTTP (c) Patricio Domingues
60
Docker – exemplo (#1)
• Não é recomendado • Instalar no lubuntu
instalar no Windows sudo apt-get install docker
https://bit.ly/2uEuP6X
(c) Patricio Domingues
64
Segurança e containers
• Repositórios públicos de • Alguns containers contém
containers podem dados e elementos que
hospedar containers não deveriam ser públicos
maliciosos… – Exemplos
– Containers com software • Chaves privadas
de mineração • Credenciais
(“cryptominers”) – AWS, GitHub, NPM
• Informação privada
– Containers
maliciosamente • +info
vulneráveis (“backdoors”)
– Containers com
https://tinyurl.com/4d3r8yrh
redirectionamento de DNS
–… (c) Patricio Domingues
65
Bibliografia
▪ Capítulo 2 de “Operating Systems – Internals and Design
Principles”, William Stallings, Prentice Hall, 2017.
▪ Appendix: “Virtual Machines” - Operating Systems: Three
Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C.
Arpaci-Dusseau, 2018
(https://pages.cs.wisc.edu/~remzi/OSTEP/vmm-intro.pdf )
▪ Docker documentation, https://docs.docker.com/
▪ Barham, Paul, et al. "Xen and the art of
virtualization." ACM SIGOPS operating systems
review 37.5 (2003): 164-177.
▪ Merkel, Dirk. "Docker: lightweight Linux containers for
consistent development and deployment." Linux
journal 2014.239 (2014): 2.
▪ RTOS: https://arstechnica.com/features/2020/10/the-
space-operating-systems-booting-up-where-no-one-has-
gone-before/ (c) Patricio Domingues
66