Você está na página 1de 1

Resenha feita a partir do Segundo Captulo do livro Sistemas Operacionais Modernos.

Neste captulo o autor aborda o tema Processos de Software e Threads, explicando detalhadamente os dois temas e suas respectivas funes nos sistemas. Este captulo, bem como todos os outros no livro, dividido em tpicos, cada qual contendo ou no subtpicos. O captulo se inicia explicitando processos, que so as atividades que o sistema exerce para realizar certas aes requisitadas pelo sistema. Todo processo composto por dispositivos de entrada e sada, programas e um estado. Dentre os estados temos: Em Execuo (Sendo usado atualmente pelo sistema); Pronto (Pronto para ser executado); Bloqueado (Esperando um evento externo para ser executado (busca de dados na memria, informaes vindas de outros processos, etc.). A obra ento mostra os eventos principais para ocorrer uma chamada de processos: Incio do Sistema (Ao se iniciar o sistema operacional diversos processos so abertos); Execuo de uma chamada ao sistema de criao de processo por um processo em execuo (Ocorre quando algum processo em aberto requisita a abertura de um novo processo para realizar um job); Uma requisio do usurio para criar um novo processo (Quando o usurio executa um programa ou uma linha de comando, clica em um atalho ou executa um programa processos so abertos para realizar a ao requisitada pelo usurio); Incio de um job em lote (Ocorre somente em sistemas em lote, dentro de computadores de grande porte, onde usurios requisitam a execuo de diversos jobs, o sistema ento cria processos para executar cada job solicitado). Segundo o autor, alm da criao do processo, tambm necessrio o seu trmino. Esse trmino pode ou no ser voluntrio, os principais so: Sada Normal (voluntria, fim do processo pelo termino de sua atividade); Sada Por Erro (voluntria, quando o usurio requisita um processo inexistente ou com erro durante a entrada, o sistema informa o erro e pergunta se o usurio deseja tentar novamente a chamada do processo); Erro Fatal (involuntrio, ocorre por um erro de programa, geralmente causado por chamadas a instrues ilegais, chamadas inexistentes a memria, entre outras); Cancelamento Por Um Outro Processo (involuntrio, cancelamento de um processo por outro, como o Taskkill do Windows ou o Kill do Linux). Aps deixar claro o que so os processos, o autor passa a explicar Threads, so eles fluxos seqenciais contidos no processo. Cada processo pode (ou no) ter uma ou mais Threads dentro dele, fazendo com que a CPU processe alternando entre cada Thread. Processos com mais de um Thread so chamados de Multithread. Atravs de exemplos o autor explica a importncia das MultiThreads no ambiente do Sistema Operacional, explicitando que com elas o ganho imenso se comparado com sistemas Monothread. A partir do conceito explicado anteriormente, o autor mostra modos de agrupar e trabalhar com processos Multithread, dentre eles temos: Threads de Usurio: Threads controlados por um sistema supervisor, criadas e destrudas dentro do processo e possuem sua prpria tabela de Threads; Threads de Ncleo: Threads controlados pelo CPU, mais lentas em relao s Threads de Usurio, porm so mais seguras e simples de serem desenvolvidas; Threads Hbridos: Threads de Usurio multiplexados por Threads de Ncleo, de modo que as qualidades das duas sejam aproveitadas. Com todos esses avanos, alguns problemas acabaram sendo criados. Com os processos e os threads vieram as Condies de Disputas (Diversos processos pedindo acesso ao mesmo recurso ao mesmo tempo), levando a Regio Crtica, que o modo como o processo foi programado ao pedir acesso ao requisito. Para evitar esses problemas, o autor mostra diversas ferramentas, a fim de evitar os Deadlocks, que estudaremos mais pra frente. Para exemplificar o autor utiliza o Problema do Produtor e Consumidor como exemplo, onde o processo Produtor enche um buffer com dados que o processo Consumidor retira, atingindo assim a Regio Crtica. A partir da, diversas ferramentas so apresentadas a fim de resolver diversos problemas da forma mais eficaz possvel, bem como solues de Sincronizao, como Semforos, Barreiras, etc. Para controlar a execuo, criao, bloqueio e encerramento dos processos, utilizado um Escalonador, ele tambm o responsvel pelo controle do acesso CPU, a fim de maximizar sua eficincia reduzindo os acessos mesma, pois estes detm muito tempo de processamento, deixando o sistema mais lento. O texto mostra que para cada sistema necessrio um tipo de escalonador, para certos sistemas escalonadores preemptivos so essenciais, em outros apenas os no preemptivos podem ser utilizados. Dentre os algoritmos escalonadores, podemos dividi-los em trs categorias as quais eles so direcionados: Sistemas em Lote (no possuem usurios em seus terminais, poucos algoritmos de Sistemas em Lote possuem preempo); Sistemas Interativos (Direcionado para a utilizao com usurios, necessria a preempo do algoritmo escalonador); Sistemas em Tempo Real (Preempo nem sempre necessria devido ao curto tempo em que seus processos so computados). Os tpicos finais so dedicados explicao de diversos algoritmos escalonadores para os trs tipos de sistemas acima. O texto apresenta ao leitor de forma clara o mtodo como o computador lida com o processamento e como ele se organiza para a melhor eficincia em cada ambiente de servio. Exemplos muitas vezes tornam o entendimento simples, embora algumas vezes sejam complexos, exigindo uma busca de informaes externa para o melhor entendimento. Indico para acadmicos de cursos relacionados Informtica, e no a leitores casuais, por conter muitos termos tcnicos e informaes complexas. Tanenbaum o autor do livro resenhado, possui mais 4 livros de sua autoria alm deste, conhecido por suas publicaes, referncia nos estudos na rea de informtica devido a suas obras acadmicas de excelente qualidade. Resenha escrita por Guilherme de Campos Brito, Acadmico do curso de Anlise e desenvolvimento de sistemas pela Fatec Zona Leste.

Você também pode gostar