Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Ciência Comp. Interdiscip. Aula 01 Clayton Valdo clayton.valdo@docente.unip.br Plano de Ensino ▪ Sistema Operacional ▪ Processos e Thread ▪ Memória Livro-Texto ▪ Bibliografia Básica: » AHO, A. V.; LAM, M. S.; SETHI, R.; ULLMANN, J. D. Compiladores: princípios, técnicas e ferramentas. 2. ed. São Paulo: Pearson Addison-Wesley, 2008. » LOUDEN, K. C. Compiladores: princípios e práticas. São Paulo: Pioneira Thomson Learning, 2004. » TOSCANI, S. S.; PRICE, A. M. de A. Implementação de linguagens de programação – compiladores. 3. ed. Porto Alegre: Artmed, 2009. v. 9. » DHAMDHERE, D. M. Operating systems: a concept- based approach. 2. ed. Noida: Tata McGraw-Hill Education, 2006. » TANENBAUM, A. S.; BOS, H. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson Education, 2014. 2 Sistema Operacional ▪ Um sistema operacional contém coleções de softwares responsáveis pelo gerenciamento de um computador e pelos recursos oferecidos para que seja possível a execução de um programa. ▪ É o componente essencial de um sistema de software dentro de um sistema de computador, no qual são executadas as aplicações de software. ▪ Esse sistema permite gerenciar alocações de memória, chamadas de sistemas, solicitações de interrupções, compartilhamento de recursos, escalonamento de processos e controle dos dispositivos instalados, além de facilitar a interação com usuários. Sistema Operacional Chamadas de sistemas » Uma chamada de sistema (system call) é um mecanismo que permite ao programa requisitar serviços de um sistema operacional acessando o seu núcleo. CPU e registradores » A CPU (Unidade Central de Processamento) controla todo o funcionamento de um computador. Apresenta internamente os registrados, que são unidades de memória capazes de armazenar bits. » Os registradores são circuitos digitais capazes de armazenar temporariamente as informações binárias. Esses circuitos permitem a execução de instruções de programas na memória principal de um computador. Sistema Operacional – Questão (Enade 2011) ▪ Um vendedor de artigos de pesca obteve com um amigo o código executável (já compilado) de um programa que gerencia vendas e faz o controle de estoque, com o intuito de usá-lo em sua loja. Segundo o seu amigo, o referido programa foi compilado em seu sistema computacional pessoal (sistema A) e funciona corretamente. O vendedor constatou que o programa executável também funciona corretamente no sistema computacional de sua loja (sistema B). ▪ Considerando a situação relatada, analise as afirmações a seguir. I. Os computadores poderiam ter quantidades diferentes de núcleos (cores). II. As chamadas ao sistema (system call) do sistema operacional no sistema A devem ser compatíveis com as do sistema B. III. O conjunto de instruções do sistema A poderia ser diferente do conjunto de instruções do sistema B. IV. Se os registradores do sistema A forem de 64 bits, os registradores do sistema B poderiam ser de 32 bits. 3 Sistema Operacional – Questão (Enade 2011) ▪ É correto o que se afirma em A. III, apenas. B. I e II, apenas. C. III e IV, apenas. D. I, II e IV, apenas. E. I, II, III e IV. Processos e Threads ▪ Quando executamos um programa, especialmente quando executamos o binário gerado pelo compilador, o sistema operacional gera um processo, que será uma execução do nosso programa. Devemos salientar que essa é uma das várias possíveis execuções, já que poderíamos, na maioria dos casos, fazer várias execuções de um mesmo programa. Assim, um único programa poderia gerar vários processos, caso fosse executado várias vezes. ▪ Ainda que esse modo de trabalho funcione bem, a geração de um processo é cara. Além disso, há momentos em que queremos compartilhar memória, bem como recursos entre as execuções paralelas. Mesmo que isso seja possível utilizando-se apenas processos, outra possível solução, potencialmente mais simples, é a utilização de threads. ▪ Devemos ter em mente que tanto processos quanto threads têm como finalidade permitir a execução concorrente de um programa (ou de partes de um programa) (DHAMDHERE, 2006). Isso depende do sistema operacional utilizado, bem como do hardware. Processos e Threads ▪ É importante notarmos que máquinas com mais de um processador ou com processadores com mais de um núcleo representam grandes avanços e resultam em ganhos de desempenho. Contudo, tanto a execução de várias threads quanto a execução de vários processos não requerem a presença de mais de uma unidade de execução. ▪ Um computador com apenas um processador que apresente um núcleo pode executar vários processos ou threads em paralelo. No passado, muitos computadores rodavam sistemas operacionais que tinham recursos de execução concorrente, mesmo não tendo mais de uma unidade central de processamento. 4 Processos e Threads Processos Threads Processos e Threads – Questão (Enade 2011) ▪ Uma antiga empresa de desenvolvimento de software resolveu atualizar toda sua infraestrutura computacional adquirindo um sistema operacional multitarefa, processadores multi-core (múltiplos núcleos) e o uso de uma linguagem de programação com suporte a threads. O sistema operacional multitarefa de um computador é capaz de executar vários processos (programas) em paralelo. Considerando esses processos implementados com mais de uma thread (multi-threads), analise as afirmações abaixo. I. Os ciclos de vida de processos e threads são idênticos. II. Threads de diferentes processos compartilham memória. III. Somente processadores multi-core são capazes de executar programas multi- threads. IV. Em sistemas operacionais multitarefa, threads podem migrar de um processo para outro. ▪ É correto apenas o que se afirma em A. I. C. I e III. E. II e IV. B. II. D. I e IV. Memória ▪ Memória é o termo genérico utilizado para designar os dispositivos de um computador que possibilitam o armazenamento de dados ou de programas. Sem os dispositivos de memória, a UCP (Unidade Central de Processamento), também conhecida como CPU (Central Processing Unit), não poderia ler e escrever informações. ▪ Os sistemas de armazenamento são organizados em hierarquia, segundo critérios que envolvem a velocidade, o custo e a volatilidade de cada dispositivo. 5 Memória ▪ A memória do computador pode ser dividida em duas categorias, conforme segue. » Principal: de acesso rápido e capacidade restrita. Armazena informações temporariamente durante um processamento realizado pela UCP. » Secundária: de acesso lento e capacidade elevada. Armazena conjunto de dados que a memória principal não suporta. Memória ▪ Tipos de memórias » As memórias podem ser classificadas segundo a volatilidade. Quando o computador é desligado, os dados armazenados na memória continuarão armazenados (memória não-volátil) ou serão perdidos (memória volátil). De acordo com esse critério e outras características, podemos ter os tipos de memórias descritos a seguir. » Memória RAM: é a memória principal do computador, usada para guardar dados e instruções de um programa. Apresenta volatilidade, pois o seu conteúdo é perdido quando o computador é desligado, e permite o acesso aleatório aos dados para leitura e gravação. » Vídeo RAM: é uma área especializada da memória RAM na qual a CPU compõe, detalhadamente, a imagem mostrada no monitor. Memória » Memória ROM: é um tipo de memória que contém instruções imutáveis, de acesso aleatório. Não apresenta volatilidade, ou seja, os dados não são perdidos com a ausência de energia. Nela, estão localizadas rotinas que inicializam o computador quando ele é ligado. Alguns dos tipos de memória ROM são EPROM e EEPROM. » Memória cache: é uma memória de alta velocidade, constituindo a interface entre o processador e a memória do sistema. Material Específico – Ciência da Computaçãoe Sistemas e Informação – Consolidado - 2º sem 2016 e 1º sem 2017 - CQA/UNIP 53 » Memórias secundárias: são memórias não-voláteis, com elevadas capacidades de armazenamento e baixos custos. Podem ser removíveis ou não. Alguns exemplos são o disco rígido (HD), os CDs, os DVDs, o pen drive etc. 6 Memória – Questão (Enade 2008) ▪ Com relação às diferentes tecnologias de armazenamento de dados, julgue os itens a seguir. I. Quando a tensão de alimentação de uma memória ROM é desligada, os dados dessa memória são apagados. Por isso, esse tipo de memória é denominado volátil. II. O tempo de acesso à memória RAM é maior que o tempo de acesso a um registrador da unidade central de processamento (UCP). III. O tempo de acesso à memória cache da UCP é menor que o tempo de acesso a um disco magnético. IV. O tempo de acesso à memória cache da UCP é maior que o tempo de acesso à memória RAM. ▪ Estão certos apenas os itens A. I e II. B. I e III. C. II e III. D. II e IV. E. III e IV. Ciência Comp. Interdiscip. 724Z
Compartilhar