/operational-systems

Repositório criado para desenvolvimento do aprendizado em sistemas operacionais

Sistemas Operacionais

Modo Usuário

Neste trabalho prático, exploramos diversos aspectos dos sistemas operacionais, incluindo o funcionamento de programas, bibliotecas e APIs. O objetivo é compreender como esses elementos interagem no ambiente de usuário de um sistema operacional.

Modo Kernel

No modo kernel, focamos em áreas restritas do sistema operacional, como a interface de rede, a interface de entrada e saída e o gerenciamento de memória. Estes são componentes críticos do sistema, responsáveis por garantir o funcionamento adequado das operações de mais baixo nível.

Software Persistente

Discutimos a complexidade e a importância do software persistente em sistemas operacionais modernos. Windows e Linux são exemplos notáveis, com milhões de linhas de código que evoluíram ao longo do tempo para atender às demandas de um ambiente de computação cada vez mais sofisticado.

Evolução dos Sistemas Operacionais

É importante destacar que os sistemas operacionais não são criados do zero, mas sim evoluem a partir de sistemas existentes. Esta abordagem iterativa permite a incorporação de novos recursos e melhorias sem comprometer a estabilidade e a compatibilidade com versões anteriores.

Exemplo de Competição por Recursos

Em sistemas operacionais, a competição por recursos é comum. Por exemplo, quando três programas disputam pelo uso da impressora, o sistema operacional deve gerenciar adequadamente o acesso à impressora para garantir que todos os programas possam imprimir de forma justa e eficiente. Da mesma forma, em um computador ou rede com vários usuários, pode haver competição pelo acesso aos recursos compartilhados, como a largura de banda da rede.

Tipos de Recursos

Recursos Físicos

Os recursos físicos incluem componentes tangíveis do sistema, como processadores, memória RAM, armazenamento de dados (disco rígido, SSD) e dispositivos de entrada/saída (teclado, mouse, monitor, impressora).

Recursos Abstratos

Os recursos abstratos são geralmente informações ou serviços oferecidos pelo sistema operacional. Exemplos incluem arquivos no sistema de arquivos, conexões de rede, permissões de acesso e instâncias de processos em execução.

Multiplexação

A multiplexação é o processo de compartilhamento de recursos entre diferentes processos ou usuários. Ela pode ocorrer de duas formas:

Compartilhamento por Tempo (Time Sharing)

Neste método, vários processos compartilham o mesmo recurso em intervalos de tempo. Por exemplo, em sistemas de tempo compartilhado (time-sharing), a CPU é compartilhada entre vários processos, cada um executando por um curto período de tempo antes de ser interrompido para permitir a execução de outro processo.

Compartilhamento por Espaço (Space Sharing)

No compartilhamento por espaço, os recursos são divididos entre os processos de forma que cada um tenha sua própria parte exclusiva do recurso. Por exemplo, em sistemas de arquivos, diferentes programas podem compartilhar o mesmo disco rígido, mas cada um tem seu próprio espaço de armazenamento separado dos outros programas.

A multiplexação é fundamental para garantir o uso eficiente dos recursos do sistema operacional e é uma das principais funcionalidades dos sistemas operacionais modernos.