Baixe o app para aproveitar ainda mais
Prévia do material em texto
9LISTA DE EXERCÍCIOS – SISTEMAS OPERACIONAIS. 1) Cite algumas funções do Sistema Operacional e relate como seria a operação dos computadores sem o uso deles. Gerência do processador, Gerência da memória, Gerência de E/S, Sistema de arquivos, Gerência de segurança, Usabilidade, etc... O computador não teria os gráficos, as imagens, recursos e os gerenciamentos em que ele gerencia os hardwares do computador. Desta forma, não teríamos operacionalidade no equipamento, resultando em uma máquina sem ações. 2) Comente sobre os sistemas operacionais mais usados no mercado, destacando características dos mesmo. RESPOSTA LIVRE DO ALUNO. COMO RESUMO DE ENTENDIMENTO SOBRE OS S.O 3) O que é núcleo do Sistema Operacional? O kernel é formado por um conjunto de rotinas que oferecem serviços aos usuários, às suas aplicações, e também ao próprio sistema, além de outros recursos que possam permitir a execução de outras tarefas quando solicitadas. É importante não confundir o núcleo do sistema com aplicações, utilitários ou interpretador de comandos que acompanham o sistema operacional. Desta forma, O kernel é responsável pela ligação entre os aplicativos e o processamento realizado a nível de dados (a nível de hardware), mas NÃO fornece uma interface para o usuário usar os serviços do sistema operacional. 4) Quais são as principais funções do núcleo dos sistemas operacionais? - criação e eliminação de processos e threads; - sincronização e comunicação entre processos e threads; - escalonamento e controle dos processos e threads; - gerência de memória; - gerência do sistema de arquivos; - gerência dos dispositivos de E/S; - suporte a redes locais e distribuídas; - contabilização do uso do sistema; - auditoria e segurança do sistema - interação direta com o hardware, aceitando a linguagem compreensível de máquina. 5) O que é um interpretador de comandos shell? Quais tarefas é possível realizar com ele? De maneira genérica, é um programa que intermedeia o contato entre o usuário e o computador. É a interface que o usuário utiliza para fazer a ponte com e o sistema operacional (kernel). Dentro o interpretador de comandos podemos executar linha de código e/ou comando para realizar ações do S.O. Exemplo: criar arquivos, gerenciar os processos e threads, diretórios, configurar hardwares, gerenciar acesso a rede, verificar segurança, etc... 6) O que é uma arquitetura Microkernel? O nome dado a uma arquitetura de núcleo de um sistema operativo cujas funcionalidades são quase todas executadas fora do núcleo, em oposição a um núcleo monolítico, onde os processos se comunicam com um núcleo mínimo, usando o mínimo possível o "espaço do sistema". Evita uso desnecessário de esforço computacional para operação que não demandam tanto recurso. 7) O que é uma System Calls ? Represente o funcionamento dela (Layout). As chamadas de sistemas são funções (interfaces aplicação) usadas pelos aplicativos para solicitar a execução de algum serviço ao kernel do sistema operacional, ou seja, uma forma do shell solicitar ao kernel uma funcionalidade. Essas chamadas são realizadas através de aplicativos que permitem executar funções diretamente ligadas ao sistema operacional, como por exemplo, ajuste ou leitura do horário do sistema, acesso, leitura e gravação de arquivos no disco, entre outros (as funções de configurações e acesso são feitas através da chamadas de sistemas). As systems calls podem ser entendidas como uma porta de entrada para o acesso ao núcleo do sistema operacional e a seus serviços. Sempre que um usuário ou aplicação desejar algum serviço do sistema, é realizada uma chamada para suas rotinas através de uma system call (chamada de sistema). Por isso, as chamadas de sistemas são instruções com maior privilégio quando comparadas às outras instruções. Elas se dividem em: Chamadas de sistemas para gerenciamento de processos. Chamadas de sistemas para gerenciamento de diretórios. Chamadas de sistemas para gerenciamento de arquivos. Chamadas de sistemas restantes. 8) Funções como ajustes de data e hora do SO, gravação de arquivos, abertura do painel de controle, se refere a qual mecanismo programático solicitado ao núcleo do SO? System Call (Chamadas de Sistemas) OBS: Todo SO para fazer funcionalidades junto ao hardware, necessita das System Calls. 9) Qual a diferença entre sistemas de multitarefas e multiprocessadores? Multiprocessadores é o uso de duas ou mais CPUs (processadores) em um único sistema de computador. OSe refere à capacidade de um sistema suportar mais de um processador em um único SO. Como existem vários processadores disponíveis, temos vários processos sendo executados ao mesmo tempo (distribuição e paralelismo). Esses multiprocessadores compartilham o barramento do computador, a memória e os dispositivos periféricos também. Multitarefa Como o próprio nome sugere, multitarefa se refere à execução de várias tarefas (digamos, processos, programas, threads, etc.) ao mesmo tempo. Nos sistemas operacionais modernos, podemos tocar música MP3, editar documentos no Microsoft Word, navegar no Google Chrome tudo simultaneamente, isso é feito por meio de multitarefa. Multitarefa se refere ao SO que faz execução de várias tarefas (digamos, processos, programas, threads, etc.) ao mesmo tempo (paralelismo). Nos sistemas operacionais modernos, podemos tocar música, editar documentos no Microsoft Word, navegar no Google Chrome tudo simultaneamente, isso é feito por meio de multitarefa. Multitarefa é uma extensão lógica da multiprogramação. A principal maneira pela qual a multitarefa difere da multiprogramação é que a multiprogramação funciona unicamente no conceito de troca de contexto, enquanto a multitarefa se baseia no compartilhamento de tempo juntamente com o conceito de troca de contexto. 10) Diferencie instruções privilegiadas das não-privilegiadas. Instruções privilegiadas são ligadas a um dispositivo de hardware. Essa restrição garante que apenas softwares altamente confiáveis acessem os dispositivos, garantindo proteção de acesso não autorizado e reduzindo o risco ao sistema, ou seja, influenciam na operacionalidade do S.O. As instruções não- privilegiadas são aquelas que não modificam a alocação ou o estado de recursos compartilhados por vários processos simultâneos, tais como processadores, memória principal e registradores especiais, etc... Essas não causam risco na operacionalidade do S.O. 11) Defina o conceito de Shell Script no Linux: É uma linguagem de script usada em vários sistemas operacionais, executada pelo o interpretador de comandos. Exemplo: de interpretador de comandos é o bash, usado na grande maioria das distribuições GNU/Linux. 12) Se fossemos criar uma pasta no Linux com o nome de calin, no terminal, qual a linha de comando que seria usada? mkdir calin OBS: para apagar usamos rmdir e para acessar usamos cd. 13) Qual a função do comando chmod no Linux? Alterar a permissão de um arquivo (leitura + escrita + execução) 14) Qual dos comando abaixo é usado para listar os arquivos de um diretório no Linux: a) mkdir b) rmdir c) cd xd) ls e) pwd 15) O que é um processo? Qual a relação entre um “programa” e um processo? A relação é que um processo é uma abstração utilizada para representar um programa em execução, ou seja, é uma instância de um programa em execução. Um processo contém toda informação necessária para completar uma computação. Programas podem gerar vários processos. Um programa torna-se num processo quando qualquer ficheiro executável é carregado na memória. 16) Como funciona o algoritmo de escalonamento por prioridades e quais os processos que costumam ter prioridades? Quando o escalonador necessita escolher qual o próximo processo a entrar em execução, ele faz uma avaliação das prioridades dos processos que estão no estadode PRONTO e seleciona o que maior prioridade, que no caso SÃO OS PROCESSOS QUE REALIZAM MUITAS OPERAÇÕES DE E/S. 17) O que são sistemas de Multiprogramação? É o sistema que possui uma técnica de dividir a memória principal em vária partes, com cada tarefa sendo executada em cada partição de memória, cujas tarefas são trocadas a todo instante pela CPU, implicando em um falso paralelismo. 18) Qual a diferença entre processo e threads? JOB evoluímos para o conceito de PROCESSO (Multiprogramação e Multitarefas Processo) os processos passaram a ser divididos em fragmentos esses fragmentos são os THREADS (Multitarefa e Multiprocessadores) os Threads são resultados da computação paralela e distribuída. Threads são linhas de execução concorrentes dentro de um processo ou seja um processo gera várias threads que irão disputar processamento. Podemos ter várias threads por processo. A única forma de aumentarmos o desempenho de um sistema que executa várias threads é fazer clusterização adicionar mais unidades de processadores. As threads são a evolução no processo de execução e devem ser utilizadas por programadores, principalmente em processo que necessitam de alto recurso computacional. 19) Um thread pode se dividir em outro threads? Justifique: 20) Fazendo uma analogia aos protocolos de redes, em especifico, o protocolo IP e TCP, o que podemos destacar no uso dos S.O. Todos os SO (Linux, Windows, Mac, etc...) suportam os protocolos TCP e IP, como protocolos de do modelo de acesso a internet (modelo TCP/IP), porém fazem uso de navegadores para camada de aplicação. 21) Defina o conceito de exclusão mútua e relacione este conceito com o uso de semáforos. ESTÁ RESPOSTA ESTÁ NO OBS DE EXLUSÃO MÚTUA 22) O Linux é um sistema de código aberto. O que isso traz de vantagens e desvantagens. Cite pelo menos uma de cada. 23) Defina o conceito de Multithreads. As multithreads é a existência de várias threads, que fazem parte do mesmo processo, sendo executados em paralelo. É quando temos um processo que foi dividido em threads, porém mesmo assim continua com dificuldades para ser finalizado. Assim dividimos a threads em outras fragmentos menores (multithreads). 24) Quais as vantagens e desvantagens de um sistema operacional com estrutura monolítica? 25) Quais são os principais estados em que um processo pode se encontrar? Os principais estados em que um processo pode se encontrar são: novo, pronto, executando, bloqueado ou suspenso e terminado. OBS SOBRE EXCLUSÃO MÚTUA. Usada para evitar que processos ou threads leiam e escrevam dados compartilhados ao mesmo tempo; Se um processo ou thread estiver usando uma variável ou arquivo, o outro processo ou thread está excluído do uso(exclusão mútua), isto é, garantia de acesso exclusivo a um recurso. É uma técnica eficiente que evita o problema de acesso simultâneo de mais de uma processo a um recurso. Essa variável utilizada para o bloqueio de processos (uso da exclusão mútua) é chamada de SEMÁFORO. A Exclusão mútua é criada para resolver a disputa a uma região crítica, e dispõem de linguagens de alto nível que através de monitores, permitem que apenas um processo utilize seus recursos por vez. Para implementar exclusão mútua precisamos de programas programas se faz em linguagens! OBS SOBRE CONDIÇÃO DE CORRIDA. Condição de corrida ocorre em programas de computador quando diferentes processos ou threads em execução dependem de um estado compartilhado, e o resultado depende do escalonamento dos processos. Condição de Corrida gera competição de processos escalonador entra em ação para escolher o processo após a escolha temos uma exclusão mútua o controle dessa exclusão é feita pelo semáforo. A condição de corrida garante que somente um processo pode ser executado por vez, usando a lógica da exclusão mútua. EXEMPLOS DE EXECUÇÃO DE COMANDOS a) mkdir calin cria um diretório com o nome de calin b) rmdir calin apaga a pasta calin c) chmod u+x calin muda a permissão do arquivo calin que passa a ser executado ou seja virou um Script feito proprietário. d) ls lista o conteúdo de um diretório que geralmente são arquivos. e) ls –al mostra os arquivos ocultos (a) e o tamanho deles (l) f) pwd mostra o diretório local g) rm –rf lista a pasta lista sendo excluída somente se tiver algum arquivo dentro. h) mv teste.txt teste1.txt como temos dois arquivos seguidos ele apenas renomeia i) mv teste.txt /tmp movendo o arquivo teste.txt para a pasta /tmp. OBS SOBRE PROCESSO Processo pode ser definido como um programa em execução com várias informações que podem gerar concorrência. Essa concorrência pode ser no contexto de software e hardware. Contexto de Software endereçamento de memória Contexto Hardware armazena o conteúdo de registradores e status de CPU para troca de processo.
Compartilhar