Resumo SO 1

Um SO pode ser dividido em 4 compenentes:

Middleware: conjunto de estruturas de software que fornece serviços adicionais para desenvolvedores de aplicativos.

Bit de modalidade: bit de controle de mudança de acesso (0 - kernel, 1 - usuário). Tem como finalidade de, ao realizar uma syscall, o bit vira 0 e vai para o modo kernel, realiza os procedimentos e retorna, chamando outra syscall, transformando o bit em 1 para a modalidade de usuário.

Baseado em gerenciamento de processos, um SO é responsável por:

Baseado em gerenciamento de memória, um SO é responsável por:

Baseado em gerenciamento de armazenamento, um SO é responsável por:

Baseado em gerenciamento de disco, um SO é responsável por:

APIS: API Windows, WIN32, POSIX, API JAVA.

Categorias de chamadas de sistema:

Estados do processo:

Existem dois tipos de comunicação interprocessos: passagem de mensagem e memória compartilhada. Na passagem de mensagem temos a passagem direta, indireta, simétrica e assimétrica. Na memória compartilhada, temos uma região de memória (Ex: variável) que tem seu recurso consumido por mais processos.

Existem maneiras de implementar o send() e o receive():

#define BUFFER_SIZE 10000

int BUFFER_AUX = 0;

void producer (void R) {
	while (1) {
		if (BUFFER_AUX < BUFFER_SIZE) {
			BUFFER_AUX++;
		}
		consumer(R); // next consumer
	}
}


void consumer (void R) {
	while (1) {
		if (BUFFER_AUX > 0) {
			BUFFER_AUX--;
		}
		producer() // next producer
	}
}

Os benefícios de programas multithread podem ser classificados em 4 categorias:

Em geral, 5 áreas apresentam desafios para a programação de sistemas multicore: