{"id":468,"date":"2026-08-04T11:20:44","date_gmt":"2026-08-04T14:20:44","guid":{"rendered":"https:\/\/eic.cefet-rj.br\/~iribeiro\/?page_id=468"},"modified":"2026-08-11T14:41:35","modified_gmt":"2026-08-11T17:41:35","slug":"sistemas-operacionais","status":"publish","type":"page","link":"https:\/\/eic.cefet-rj.br\/~iribeiro\/sistemas-operacionais\/","title":{"rendered":"Sistemas Operacionais"},"content":{"rendered":"<h2>Informa\u00e7\u00f5es Gerais<\/h2>\n<p><strong>Hor\u00e1rio: <\/strong> Ter\u00e7a-feira, 18:10 &#8211; 21:30<br \/>\n<strong>Local: <\/strong>P1-204 (Sala 1)<\/p>\n<hr \/>\n<h2>Descri\u00e7\u00e3o<\/h2>\n<p>Se voc\u00ea j\u00e1 utilizou um computador, um smartphone ou um tablet voc\u00ea certamente j\u00e1 lidou com algum sistema operacional. Desses sistemas, voc\u00ea provavelmente conhece a por\u00e7\u00e3o mais externa, geralmente apresentada atrav\u00e9s de uma interface gr\u00e1fica intuitiva. Entretanto, por baixo dos panos, quase de forma impercept\u00edvel (ao menos gostar\u00edamos que fosse assim), os sistemas operacionais est\u00e3o atuando para permitir que diversas aplica\u00e7\u00f5es executem ao mesmo tempo (ou quase) de forma isolada (sem interferirem uma com as outras) obtendo sua por\u00e7\u00e3o justa dos recursos necess\u00e1rios para sua execu\u00e7\u00e3o (processador, mem\u00f3ria, etc). Al\u00e9m disso, o sistema operacional tamb\u00e9m cria diversas abstra\u00e7\u00f5es que facilitam a nossa vida como usu\u00e1rios ou desenvolvedores de aplica\u00e7\u00f5es e estendem os recursos f\u00edsicos providos pelo hardware. Nesse curso, n\u00f3s vamos explorar os mecanismos e as pol\u00edticas empregadas pelos sistemas operacionais para atingir tais objetivos.<\/p>\n<hr \/>\n<h2>Bibliografia B\u00e1sica<\/h2>\n<ol>\n<li>Remzi H. Arpaci-Dusseau e Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces (Dispon\u00edvel em <a href=\"https:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">https:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/<\/a>)<\/li>\n<li>Russ Cox, Frans Kaashoek e Robert Morris, xv6: a simple, Unix-like teaching operating system (Dispon\u00edvel em <a href=\"https:\/\/pdos.csail.mit.edu\/6.828\/2019\/xv6\/book-riscv-rev0.pdf\">xv6<\/a>)<\/li>\n<li>Anderson, Thomas e Dahlin, Michael, Operating Systems Principles and Practice \u2013 2\u00aa edi\u00e7\u00e3o, Volumes 1-4, Recursive Books<\/li>\n<li>TANENBAUM, Andrew S., Sistemas Operacionais Modernos, 4a edi\u00e7\u00e3o, Editora Pearson Prentice Hall, 2016.<\/li>\n<\/ol>\n<hr \/>\n<h2>Cronograma<\/h2>\n<p>O cronograma abaixo \u00e9 uma estimativa e pode variar no decorrer do curso.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vRp3KtR3bWyGCfxybzKOLzmmAiAHoC86u8itXAQE849z-NMWQ_nyqM4d4gB_85Ps17qX1BlD-6x2Qhi\/pubhtml?gid=0&amp;single=true&amp;widget=false&amp;headers=false\" width=\"92.0%\" height=\"580\"><\/iframe><\/p>\n<hr \/>\n<h2>Avalia\u00e7\u00e3o<\/h2>\n<p dir=\"ltr\">Ao longo do semestre o aluno ser\u00e1 avaliado atrav\u00e9s da aplica\u00e7\u00e3o de 4 provas:<\/p>\n<ul>\n<li>P1: aplicada no meio do semestre letivo e cobre a metade do conte\u00fado do curso;<\/li>\n<li>P2: aplicada no final do semestre letivo e cobre a segunda metade do conte\u00fado do curso;<\/li>\n<li>P3:\u00a0aplicada no final do semestre letivo apenas para os alunos que faltarem a AV1 ou AV2 (substituindo a nota da avalia\u00e7\u00e3o faltante).<\/li>\n<li>PF: aplicada no final do semestre letivo para aqueles alunos que obtiveram m\u00e9dia inferior a 7 <\/li>\n<\/ul>\n<p dir=\"ltr\"> Al\u00e9m das provas, tamb\u00e9m ser\u00e3o propostos tr\u00eas projetos (Proj1, Proj2 e Proj3) de programa\u00e7\u00e3o que ir\u00e3o complementar a nota da P1. Esses projetos s\u00e3o opcionais e cada um deles vale um ponto (<strong>N_Proj = Proj1 + Proj2 + Proj3 &lt;= 3<\/strong>). Os projetos s\u00e3o descritos a seguir.<\/p>\n<p dir=\"ltr\">A nota parcial (NP) do aluno ser\u00e1 calculada da seguinte forma: <strong>NP = MAX(10, P1 + N_Proj) * 0,5 + P2 * 0,5<\/strong>.<\/p>\n<ul>\n<li>Se NP &lt; 3 =&gt; a nota final do aluno ser\u00e1 sua nota parcial (NF = NP) e o aluno estar\u00e1 reprovado;<\/li>\n<li>Se 3 &lt;= NP &lt; 7 =&gt; aluno far\u00e1 prova final e sua nota final ser\u00e1 calculada como NF = (NP + PF)\/2. O aluno estar\u00e1 aprovado se NF &gt;= 5;<\/li>\n<li>Se NP &gt;= 7 =&gt; NF = NP e o aluno estar\u00e1 aprovado.<\/li>\n<\/ul>\n<h2>Projetos<\/h2>\n<p>Nesta disciplina utilizaremos um fork dos projetos propostos pelo prof. Remzi H. Arpaci-Dusseau, dispon\u00edveis em <a href=\"https:\/\/github.com\/igorcompuff\/ostep-projects\" target=\"_blank\" rel=\"noopener\">OSTEP Projects<\/a>. Para realizar os projetos, voc\u00ea precisar\u00e1 de uma distribui\u00e7\u00e3o Linux. Para tanto, eu recomendo utilizar uma m\u00e1quina virtual com a distribui\u00e7\u00e3o Ubuntu. Eu preparei um breve passo a passo para que voc\u00ea possa instalar e configurar o seu ambiente (<a href=\"https:\/\/cefetrjbr-my.sharepoint.com\/:b:\/g\/personal\/11429539712_cefet-rj_br\/IQBTYAGaNbQVRrdcJ8QV3eyBAVKQvWKVT3rNxFsguTzMTrA?e=nDxSIe\" target=\"_blank\">acessar o passo a passo<\/a>).<\/p>\n<p>O terceiro projeto que desenvolveremos \u00e9 baseado no sistema operacional xv6. O xv6 foi desenvolvido pelo MIT (Massachusetts Institute of Technology) com prop\u00f3sitos educacionais, mas \u00e9 um sistema operacional completo e funcional. Para maiores informa\u00e7\u00f5es sobre o funcionamento do xv6 consulte a bibliografia b\u00e1sica n\u00famero <a href=\"https:\/\/pdos.csail.mit.edu\/6.828\/2019\/xv6\/book-riscv-rev0.pdf\">2<\/a>.<\/p>\n<p>Todos os projetos devem ser compilados com as seguintes flags do gcc: <strong>-Wall -Werror<\/strong>. Al\u00e9m de compilar, o projeto deve ser executado utilizando o framework de testes desenvolvido pelo autor, cuja documenta\u00e7\u00e3o est\u00e1 dispon\u00edvel em <a href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-projects\/tree\/master\/tester\" target=\"_blank\" rel=\"noopener\">Framework de Testes<\/a>. Para que o projeto tenha pontua\u00e7\u00e3o m\u00e1xima, ele deve compilar sem erros e passar em todos os testes propostos. Cada teste no qual o projeto n\u00e3o passar acarretar\u00e1 em desconto proporcional ao n\u00famero de testes propostos para o projeto.<\/p>\n<p>Al\u00e9m do conhecimento em programa\u00e7\u00e3o na linguagem C, os projetos tamb\u00e9m exigem alguma familiaridade com o shell do Linux. Sendo assim, eu preparei esse <a href=\"https:\/\/cefetrjbr-my.sharepoint.com\/:v:\/g\/personal\/11429539712_cefet-rj_br\/EYGYPZZW4KhCsowIvD8eilkBtAPa6FgXG68ik_0jiwX0qw?e=mpCI7j\">video tutorial<\/a> com uma introdu\u00e7\u00e3o sobre o shell para voc\u00eas.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vRQkenDWgcWVKtPFrYyfmRs7oWS9-6hpAVkUim9iHm4FBDpdSKMqt06zqcsByMYpQ1aVVAX11xtS6H3\/pubhtml?gid=0&amp;single=true&amp;widget=false&amp;headers=false\" width=\"61.0%\" height=\"300\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Informa\u00e7\u00f5es Gerais Hor\u00e1rio: Ter\u00e7a-feira, 18:10 &#8211; 21:30 Local: P1-204 (Sala 1) Descri\u00e7\u00e3o Se voc\u00ea j\u00e1 utilizou um computador, um smartphone ou um tablet voc\u00ea certamente j\u00e1 lidou com algum sistema operacional. Desses sistemas, voc\u00ea provavelmente conhece a por\u00e7\u00e3o mais externa, geralmente apresentada atrav\u00e9s de uma interface gr\u00e1fica intuitiva. Entretanto, por baixo dos panos, quase de<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/eic.cefet-rj.br\/~iribeiro\/sistemas-operacionais\/\" class=\"home-blog-btn\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-468","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/pages\/468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/comments?post=468"}],"version-history":[{"count":10,"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/pages\/468\/revisions"}],"predecessor-version":[{"id":480,"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/pages\/468\/revisions\/480"}],"wp:attachment":[{"href":"https:\/\/eic.cefet-rj.br\/~iribeiro\/wp-json\/wp\/v2\/media?parent=468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}