{"id":5,"date":"2019-09-26T13:02:41","date_gmt":"2019-09-26T16:02:41","guid":{"rendered":"http:\/\/web.inf.ufpr.br\/bona2\/?page_id=5"},"modified":"2019-11-25T15:42:20","modified_gmt":"2019-11-25T17:42:20","slug":"sistemas-operacionais","status":"publish","type":"page","link":"https:\/\/web.inf.ufpr.br\/bona\/sistemas-operacionais\/","title":{"rendered":"Sistemas Operacionais"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n<h3>Ementa<\/h3>\n<p>Componentes de um sistema. Administra\u00e7\u00e3o dos recursos: mem\u00f3ria principal e secund\u00e1ria. Administra\u00e7\u00e3o dos processos: prioridades, interrup\u00e7\u00e3o, filas. Comunica\u00e7\u00e3o entre processos: sem\u00e1foros e mensagens. Seguran\u00e7a.<\/p>\n<h3>Programa<\/h3>\n<ol>\n<li>Introdu\u00e7\u00e3o e estrutura de Sistemas Operacionais<\/li>\n<li>Processos e threads.<\/li>\n<li>Sincroniza\u00e7\u00e3o entre processos.<\/li>\n<li>Gerenciamento de mem\u00f3ria. Esquemas de gerenciamento de mem\u00f3ria.<\/li>\n<li>Mem\u00f3ria virtual.<\/li>\n<li>Pagina\u00e7\u00e3o, segmenta\u00e7\u00e3o, princ\u00edpio da localidade e do conjunto de trabalho.<\/li>\n<li>Ger\u00eancia de Armazenamento. Sistema de arquivos. Mem\u00f3ria secund\u00e1ria. Mapeamento de arquivos em disco.<\/li>\n<li>Dispositivos de entrada e sa\u00edda.<\/li>\n<li>Projeto, interface e desempenho de sistemas de entrada e sa\u00edda.<\/li>\n<li>Virtualiza\u00e7\u00e3o<\/li>\n<\/ol>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>\n<h3>Aulas<\/h3>\n<ul>\n<li>Aulas 1 e 2\n<ul>\n<li>Apresenta\u00e7\u00e3o do curso<\/li>\n<li>Estrutura de Sistemas Operacionais<\/li>\n<li>Capitulo 1 e 2 de [1]<\/li>\n<li>Parte 1 de [7]<\/li>\n<li>Outros detalhes: https:\/\/linux-kernel-labs.github.io\/master\/lectures\/intro.html#basic-operating-systems-terms-and-concepts<\/li>\n<\/ul>\n<\/li>\n<li>Aulas 3-6\n<ul>\n<li>Conceitos de Processos\n<ul>\n<li>&nbsp;<em>Process Control Block<\/em><\/li>\n<li>Organiza\u00e7\u00e3o\n<ul>\n<li>A \u00e1rvore de processos<\/li>\n<\/ul>\n<\/li>\n<li>Criando processos\n<ul>\n<li>Fork (man fork&nbsp; e man clone)<\/li>\n<li>CreateProcess <a href=\"https:\/\/docs.microsoft.com\/pt-br\/windows\/win32\/api\/processthreadsapi\/nf-processthreadsapi-createprocess\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.microsoft.com\/pt-br\/windows\/win32\/api\/processthreadsapi\/nf-processthreadsapi-createprocessa<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Estados<\/li>\n<li>Extra Zumbis e \u00d3rf\u00e3os: <a title=\"\" href=\"https:\/\/www.geeksforgeeks.org\/zombie-and-orphan-processes-in-c\/\" target=\"_self\" rel=\"noopener noreferrer\">https:\/\/www.geeksforgeeks.org\/zombie-and-orphan-processes-in-c\/<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Threads\n<ul>\n<li>Conceitos e exemplos<\/li>\n<li>Libpthreads [8,9]<\/li>\n<li>Tipos e modelos: <a title=\"\" href=\"http:\/\/www.it.uu.se\/education\/course\/homepage\/os\/vt18\/module-4\/implementing-threads\/\" target=\"_self\" rel=\"noopener noreferrer\">http:\/\/www.it.uu.se\/education\/course\/homepage\/os\/vt18\/module-4\/implementing-threads\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Comunica\u00e7\u00e3o entre processos (IPC)<\/li>\n<li>Capitulo 3 e 4 de [1]<\/li>\n<li>Capitulo 4, 5 e 8 de [7]<\/li>\n<\/ul>\n<\/li>\n<li>Aulas XX -&gt; (pos prof. Wagner)\n<ul>\n<li>Mem\u00f3ria Princial( Cap\u00edtulo 8 de [1])\n<ul>\n<li>Conceitos b\u00e1sico\n<ul>\n<li>Hierarquia<\/li>\n<li>Hardware b\u00e1sico<\/li>\n<li>Desafos<\/li>\n<\/ul>\n<\/li>\n<li>Endere\u00e7o l\u00f3gico vs endere\u00e7o f\u00edsico<\/li>\n<li>Bibliotecas compartilhadas e liga\u00e7\u00e3o din\u00e2mica<\/li>\n<li>Aloca\u00e7\u00e3o cont\u00ednua\n<ul>\n<li>Prote\u00e7\u00e3o<\/li>\n<li>Parti\u00e7\u00f5es<\/li>\n<li>Fragmenta\u00e7\u00e3o<\/li>\n<\/ul>\n<\/li>\n<li>Segmenta\u00e7\u00e3o<\/li>\n<li>Pagina\u00e7\u00e3o\n<ul>\n<li>Estrutura da tabela de p\u00e1ginas<\/li>\n<\/ul>\n<\/li>\n<li>Gerenciamento mem\u00f3ria f\u00edsica\n<ul>\n<li>Buddy system<\/li>\n<li>SLABs<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Mem\u00f3ria Virtual (Cap\u00edtulo 9 de [1])\n<ul>\n<li>Espa\u00e7o de Endere\u00e7amento<\/li>\n<li>Pagina\u00e7\u00e3o sob demanda\n<ul>\n<li>Copy on Write<\/li>\n<li>Arquivos mapeados em mem\u00f3ria<\/li>\n<\/ul>\n<\/li>\n<li>Algoritmos de substitui\u00e7\u00e3o de&nbsp; p\u00e1ginas<\/li>\n<li>Thrasing<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Bibliografia de Refer\u00eancia<\/h2>\n<ul>\n<li>[1] SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.<\/li>\n<li>[2] TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.<\/li>\n<li>[3] CESATI, Marco; BOVET, Daniel. Understanding the Linux Kernel. 3rd Edition: O&#8217;Reilly, 2005.<cite> <a href=\"http:\/\/voinici.ceata.org\/~tct\/resurse\/utlk.pdf\">voinici.ceata.org\/~tct\/resurse\/utlk.<b>pdf<\/b><\/a><\/cite><\/li>\n<\/ul>\n<ul>\n<li>[4] ROBBINS, Kay; ROBBINS, Steven. UNIX Systems Programming: Communication, Concurrency and Threads. 8th ed., Prentice Hall, 2007.<\/li>\n<li>[5] GORMAN, Mel; Understanding the Linux Virtual Memory Manager. <a href=\"http:\/\/www.informit.com\/content\/images\/0131453483\/downloads\/gorman_book.pdf\">http:\/\/www.informit.com\/content\/images\/0131453483\/downloads\/gorman_book.pdf<\/a><\/li>\n<li>[6] DOWNEY, Allen B., The Little Book of Semaphores, <a title=\"\" href=\"http:\/\/greenteapress.com\/semaphores\/LittleBookOfSemaphores.pdf\" target=\"_self\" rel=\"noopener noreferrer\">http:\/\/greenteapress.com\/semaphores\/downey08semaphores.pdf<\/a><\/li>\n<li>[7] Livros de SO Prof. Maziero:<a title=\"\" href=\"http:\/\/maziero.homenet.org:88\/dokuwiki\/doku.php?id=so:livro_de_sistemas_operacionais\" target=\"_self\" rel=\"noopener noreferrer\"> http:\/\/wiki.inf.ufpr.br\/maziero\/doku.php?id=socm:start<\/a><\/li>\n<li>[8] Manual de Pthreads (mas voc\u00ea pode usar qualquer que encontrar):<a href=\"https:\/\/computing.llnl.gov\/tutorials\/pthreads\/\"> https:\/\/computing.llnl.gov\/tutorials\/pthreads\/<\/a><\/li>\n<li>[9] Outra manual de Pthreads: <a title=\"http:\/\/advancedlinuxprogramming.com\/alp-folder\/alp-ch04-threads.pdf\" href=\"http:\/\/advancedlinuxprogramming.com\/alp-folder\/alp-ch04-threads.pdf\" target=\"_self\" rel=\"noopener noreferrer\">http:\/\/advancedlinuxprogramming.com\/alp-folder\/alp-ch04-threads.pdf<\/a><\/li>\n<\/ul>\n\n\n<ul class=\"wp-block-list\"><li><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Exerc\u00edcios Mem\u00f3ria \/ Armazenamento<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Explique a diferen\u00e7a entre fragmenta\u00e7\u00e3o interna e externa.<\/li><li>Dadas parti\u00e7\u00f5es de mem\u00f3ria de 100KB, 500KB, 200KB, 300KB e 600KB (em ordem), como cada um dos algoritmo: Fist-fit, best-fit e worst-fit, alocariam processos de 212Kb, 417Kb, 112KB e 426KB? Qual dos algoritmos faria o uso mais eficiente de mem\u00f3ria.<\/li><li>Explique os seguintes algoritmos para substitui\u00e7\u00e3o de p\u00e1ginas (page replacement): FIFO, Optimal e LRU. No caso do LRU, voc\u00ea deve explicar quais s\u00e3o as pol\u00edticas de aproxima\u00e7\u00e3o para o LRU.<\/li><li>Como funciona o mapeamento de arquivos em  mem\u00f3ria, qual a vantagem de utilizar esse modo de acesso.<\/li><li>O que \u00e9 o modo de aloca\u00e7\u00e3o de mem\u00f3ria &#8220;Buddy System&#8221;. Qual a sua desvantagem?<\/li><li>O que \u00e9 o mecanismo de aloca\u00e7\u00e3o chamado SLAB?<\/li><li>O que \u00e9 o Overcommit de mem\u00f3ria?<\/li><li>Qual a rela\u00e7\u00e3o entre o espa\u00e7o de endere\u00e7amento virtual e utiliza\u00e7\u00e3o da mem\u00f3ria f\u00edsica?<\/li><li>O que significa dizer que a mem\u00f3ria virtual de um processo \u00e9 50MB, a mem\u00f3ria residente 20MB e a mem\u00f3ria compartilhada 10MB.<\/li><li>Quais as vantagens e desvantagens de guardar o nome do programa criador junto aos atributos do arquivo?<\/li><li>Na sem\u00e2ntica de sistema de arquivos do Unix o que acontece quando um arquivo que est\u00e1 aberto \u00e9 removido?<\/li><li>Sobre m\u00e9todos de aloca\u00e7\u00e3o de espa\u00e7o, responder:<br>\n    a) Como funciona a aloca\u00e7\u00e3o de espa\u00e7o cont\u00edgua? Que problemas apresenta?<br>\n    b) Como funciona a aloca\u00e7\u00e3o de espa\u00e7o por encadeamento (linked allocation). Quais os problemas apresentados por este m\u00e9todo?<br>\n    c) Como funciona a FAT (File-Allocation Table) usado pelo MS-DOS, qual a diferen\u00e7a em rela\u00e7\u00e3o \u00e0 aloca\u00e7\u00e3o por encadeamento simples?<br>\n    d) Mostre como ficaria a tabela FAT para um arquivo composto pelos seguintes blocos: 220, 340, 500, 600.<br>\n    e) Em um sistema de arquivos usando uma FAT o que acontece se ocorrer a corrup\u00e7\u00e3o total da tabela de aloca\u00e7\u00e3o de arquivos?<br>\n    f) Como funciona a aloca\u00e7\u00e3o de espa\u00e7o indexada? Que problemas da aloca\u00e7\u00e3o usando encadeamento ela tenta resolver?<br>\n    f) Dentro da aloca\u00e7\u00e3o indexada quais s\u00e3o os mecanismos usados para guardar os \u00edndices?<br>\n    g) O que s\u00e3o i-nodes? Em qual mecanimos de aloca\u00e7\u00e3o indexada eles se enquadram?<\/li><li>Considere um sistema com i-nodes com 15 entradas. Nestes i-nodes as 12 primeiras entradas s\u00e3o para aloca\u00e7\u00e3o direta; a 13  entrada para aloca\u00e7\u00e3o simples indireta; a 14 para aloca\u00e7\u00e3o dupla indireta e a 15 para aloca\u00e7\u00e3o tripla-indireta.  Considere ainda que cada bloco tem 512Kb e os endere\u00e7os 4 bytes. Como ficaria a estrutura de inodes para armazenar um arquivo de 129024 bytes (252 blocos)?<\/li><li>Qual a diferen\u00e7a de simbolic links e hard links? E como \u00e9 a implenta\u00e7\u00e3o de cada um? Como \u00e9 feito o controle de remo\u00e7\u00e3o de arquivo em cada caso?<\/li><li>Considere um sistema onde o espa\u00e7o livre \u00e9 ger\u00eanciado por uma lista de espa\u00e7o livre. Suponha que o ponteiro para a lista de espa\u00e7os-livres foi perdido. Esta lista pode ser reconstru\u00edda? Explique sua resposta.<\/li><li>Quais s\u00e3o os m\u00e9todos para ger\u00eanciamento de espa\u00e7o livre em disco?<\/li><li>Quais as estapas de um checkagem de consist\u00eancia de um file system?<\/li><li>Como funcionam os sistema de arquivos baseados em Journaling? Quais suas vantagem? O que tentam garantir?<\/li><li>Explique os seguintes algoritmos de escalonamento de requisi\u00e7\u00f5es de disco: FCSF, SSTF (Shortest-Seek First), SCAN, C-SCAN e LOOK.<\/li><li>Compare RAID0, RAID1, RAID5 e RAID6.<\/li><li>Suponha que voc\u00ea possui 4 discos r\u00edgidos de 750GB. Quanto espa\u00e7o dispon\u00edvel voc\u00ea obteria usando RAID5 e quanto espa\u00e7o voc\u00ea obteria com RAID6? Quantos discos poderiam falhar em cada um destes casos?<\/li><\/ol>\n\n\n\n<p>~                                     <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ementa Componentes de um sistema. Administra\u00e7\u00e3o dos recursos: mem\u00f3ria principal e secund\u00e1ria. Administra\u00e7\u00e3o dos processos: prioridades, interrup\u00e7\u00e3o, filas. Comunica\u00e7\u00e3o entre processos: sem\u00e1foros e mensagens. Seguran\u00e7a. Programa Introdu\u00e7\u00e3o e estrutura de Sistemas Operacionais Processos e threads. Sincroniza\u00e7\u00e3o entre processos. Gerenciamento de mem\u00f3ria. Esquemas de gerenciamento de mem\u00f3ria. Mem\u00f3ria virtual. Pagina\u00e7\u00e3o, segmenta\u00e7\u00e3o, princ\u00edpio da localidade e do &hellip; <a href=\"https:\/\/web.inf.ufpr.br\/bona\/sistemas-operacionais\/\" class=\"more-link\">Continuar lendo <span class=\"screen-reader-text\">Sistemas Operacionais<\/span><\/a><\/p>\n","protected":false},"author":60,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/pages\/5","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/users\/60"}],"replies":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":8,"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/pages\/5\/revisions"}],"predecessor-version":[{"id":49,"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/pages\/5\/revisions\/49"}],"wp:attachment":[{"href":"https:\/\/web.inf.ufpr.br\/bona\/wp-json\/wp\/v2\/media?parent=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}