Você está na página 1de 3

RESUMO SISTEMAS DE COMPUTAÇÃO

segunda-feira, 21 de novembro de 2022 23:32

Aula 01: tópicos principais

1. Software(SW): Dividido basicamente em duas categorias: programas do sistema: o próprio


sistema operacional programas de aplicação: demais programas

2. Sistema Operacional: controla recursos e fornece base para a construção de aplicações permite a
utilização do computador de forma eficiente e segura O SO "esconde" a complexidade do HW
subjacente fornecendo ao programador um conjunto de instruções mais conveniente.

Mais definições:
1. Todo o "pacote" com os programas usados para gerenciar todos os recursos computacionais
juntamente com as ferramentas (por exemplo, interpretadores de comandos, interfaces
gráficas, utilitários de arquivos e editores).
2. Mais precisamente, se refere ao programa central que gerencia e aloca recursos
computacionais (CPU, RAM e dispositivos).

Shell: interpretador de comandos (modo texto)


GUI (Graphical User Interface - Interface Gráfica com o Usuário)

Porque num sistema pre-programado não conseguimos prever o tempo de processamento?

Tipos básicos de sistemas operacionais:


○ 4.1.Monotarefa
○ 4.2.Multitarefa
○ 4.3.Multiusuário
○ 4.4.Sistemas operacionais em rede
○ 4.5.Sistemas operacionais distribuídos

1) Hardware

Página 1 de COISAS PARA FAZER


1) Hardware
a. Processadores:
CPU (Unidade Central de Processamento): buscar instruções na memória e executá-las. Cada
CPU possui um conjunto específico de instruções que é capaz de executar.  Todas as CPU
possuem registradores internos para armazenamento de varáveis importantes e resultados
temporários:
contador de programa (Program Counter = PC): contém o endereço de memória da próxima
instrução a ser buscada para execução.
ponteiro de pilha (Stack Pointer = SP): topo da pilha de programa atual na memória
(informações na pilha: parâmetros de entrada, variáveis locais, endereço de retorno de PC,
etc.).

int main(int argc, char *argv[])


• argc: número de argumentos (parâmetros) na linha de comando (incluindo
o nome do executável);
• argv: vetor de strings contendo os argumentos (parâmetros) da linha de
comando.
The at oi () function converts the ini tial portion of the string
poi nt ed to by npt r toi nt . The behavi or is the same as

De <https://man7.org/linux/man-pages/man3/atoi.3.html>

sl eep() causes the calling thr ead to sl eep ei ther until the
number of real -time seconds speci fied in seconds have el apsed or
until a si gnal arrives whi ch is not ignor ed.

De <https://man7.org/linux/man-pages/man3/sleep.3.html>

A função atof converte uma string em um float.


O comando C/C++ getenv permite obter valores individuais das variáveis de ambiente de um
processo.

Semáforos

• sem_open: para criar/obter e inicializar semáforos (utilize a "versão"


do sem_open apropriada, com 2 ou 4 parâmetros);
• sem_wait: para fazer down no semáforo;
• sem_post: para fazer up no semáforo;
• sem_unlink: para destruir o semáforo.

sem_t *s; s = sem_open("meu_semaforo",O_RDWR); // tenta obter semáforo existente if (s


== SEM_FAILED) { // operação sem_open foi bem-sucedida? s =
sem_open("meu_semaforo",O_RDWR | O_CREAT, 0666, 1); // cria semáforo e inicializa com
valor 1 if (s == SEM_FAILED) { /* ERRO */ } }

Threads

Threads são fluxos de execução que existem dentro de um mesmo processo e


usam os recursos do processo. Um thread:
• Tem o seu próprio fluxo de controle independente enquanto existir o
processo pai e o SO dá suporte a ele.
• Pode compartilhar os recursos do processo com
outros threads igualmente independentes.

Página 2 de COISAS PARA FAZER


outros threads igualmente independentes.
• Morre se o seu processo termina.
Para um programador, o conceito de "procedimentos" ou "funções" que rodam
independentemente pode ser a melhor descrição do que são threads.

Processo

instância de um programa em execução + seu contexto


Este contexto é formado por: valores das variáveis na memória; valores dos registradores do
processador (inclui PC = Program Counter e SP = Stack Pointer); e recursos (lista de arquivos
abertos, alarmes pendentes, listas de processos relacionados, etc.)

. Escalonador escolhe novo processo para executar (fim do tempo de processador alocado ao
processo corrente). 2. Escalonador entrega o processador ao novo processo. 3. Processo
bloqueado para fazer entrada de dados (por exemplo, espera dados do teclado – scanf/cin) ou
outra situação na qual não tem condições lógicas de rodar.

Regiões Críticas Objetivo: impedir que mais de um processo acesse o dado compartilhado ao
mesmo tempo (i.e., exclusão mútua). A implementação de exclusão mútua é essencial para
sistemas operacionais multiprogramados.

Página 3 de COISAS PARA FAZER

Você também pode gostar