Sistemas Operacionais e outros softwares André Proto Adriano Mauro Cansian UNESP - São José do Rio Preto ______________________________ http://www.acmesecurity.org/lc (Linguagem (Li Computacional) C t i l) Neste tópico tópico veremos: • Caracter Características ísticas lógicas dos sistemas computacionais, t i i e sua relação l ã com os softwares – Softwares básicos • Sistema operacional • Compiladores e interpretadores – Softwares aplicativos • Gerais • Espec Especííficos Adriano Mauro Cansian 2 Introdução Introdu ção • Sistema Computacional = hardware + software • Hardware – Parte física da máquina. – Conjunto de circuitos eletrônicos. • Software – Conjunto de d instruções õ “alteráveis” “ l á i ” • Programadores as criam e alteram. – (Algumas vezes nem tão alteráveis assim) – São conjuntos de procedimentos básicos que fazem que o computador seja útil executando alguma função. – São “ordens ordens”” ppré pré-estabelecidas,, chamadas p programas. programas g . Adriano Mauro Cansian 3 Tipos de softwares • Tipos de softwares – Software básico • Sistema operacional • Compiladores e interpretadores – Software aplicativo • Programas específicos escritos para executar operações (ou resolver problemas) de interesse do usuário. usuário • Exemplos: planilhas, editores de texto, programas de e-mail, navegadores, jogos, etc etc… … Adriano Mauro Cansian 4 Básicos Sistema Operacional Aplicativos Utilitários G i Gerais Editor de textos Planilhas eletrônicas l t ô i Adriano Mauro Cansian E Específicos ífi Bancos de dados 5 Software básico, básico, divide divide--se em… • Sistema Operacional (S.O.) – Responsável R á l pela l interface i t f (interação) (i t ã ) entre t hardware h d e o usuário, o hardware e outros softwares aplicativos, entre outras funções. ç – Exemplos: Windows 98, 98, Windows XP, XP, UNIX UNIX,, Linux Linux,, FreeBSD,, DOS FreeBSD DOS,, Mac OS X, X, dentre outros. • Compiladores e interpretadores – Softwares especiais que traduzem ou interpretam os programas escritos i em diferentes dif linguagens li de d programaçção (serão programa (serão discutidos mais adiante). • Exemplos: Compilador Pascal, Compilador C, etc… etc… Adriano Mauro Cansian 6 Sistema Operacional Veremos com um pouco mais de detalhes para que serve o sistema operacional Definição Defini ção de S.O. (1) • “O Sistema Operacional é responsável por alocar recursos de d hardware h d e escalonar l tarefas tarefas. f . Ele El também deve prover uma interface para o usuário - ele l fornece f ao usuário á i uma maneira i de d acesso aos recursos do computador.” computador.” [Sobell]. Adriano Mauro Cansian 8 Definição Defini ção de S.O. (2) • “Um Sistema Operacional pode ser definido como um gerenciador dos recursos que compõem o computador (processador, memória, I/O, arquivos, etc). Os problemas centrais que o Sistema Operacional deve resolver são o compartilhamento tilh t ordenado, d d a proteção t ã dos d recursos a serem usados pelas aplicações do usuário e o interfaceamento entre este e a máquina.” q [Stemmer]. [ ] Adriano Mauro Cansian 9 Sistema Operacional e o hardware • O Sistema Operacional deve ser adaptado às características do hardware. hardware • As linguagens de programação e os aplicativos do usuário final devem ser adaptados ao Sistema Operacional.. Operacional • Ou seja, seja traduzindo: – Um Sistema Operacional em geral ssó ó funciona no hardware para o qual ele foi criado. criado. – Softwares feitos para um sistema operacional, em geral não funcionam em outro sistema operacional operacional.. Adriano Mauro Cansian 10 S.O. não não apenas em “computadores”… • Sistema operacional não se restringe aos computadores. computadores http://www.sony.net/Products/aibo/ – Todos os hardwares que realizam processamento possuem algum tipo de sistema operacional. operacional • Exemplos: – Computadores p de bordo de carros e aviões, sistemas de defesa, calculadoras, máquinas robotizadas, brinquedos computadorizados, videogames, aparelhos de DVD, etc etc… … Adriano Mauro Cansian 11 USU USUÁRIOS OS SISTEMA OPERACIONAL HARDWARE W Adriano Mauro Cansian 12 Sistema Operacional (1) • Conhecer o Sistema Operacional pode ajudar a resolver alguns problemas que, que a princípio, princípio nos parecem complicados. – O S.O. S O possui utilitários especiais para a formatação de discos, listagens em vídeo e impressora, criação/có criação/c ópia/exclusão e alterações de arquivos, dentre muitos outros. Adriano Mauro Cansian 13 Sistema Operacional (2) • Tecnicamente: O Sistema Operacional (S.O.)é um conjunto de rotinas rotinas.. – Uma lista de instruções passadas para o processador com a finalidade permitir a processador, comunicação do usuário com o hardware. Adriano Mauro Cansian 14 Sistema Operacional (3) • Principais atributos do Sistema Operacional: • Abstração Ab ã de d Hardware H d ⇒ Máquina Má i Virtual Vi l – Apresenta ao usuário uma máquina virtual, mais simples do que o hardware real real.. – O usuário usuário tem a percepção que interage com uma q só ppara ele. máquina • O S.O. protege o hardware da ação direta do usuário. • Faz com que intera interação ção com o computador seja p e possí poss p ível. simples Adriano Mauro Cansian 15 Sistema Operacional (4) • O sistema operacional é a porção de software que roda em “modo kernel kernel”” ou “modo supervisor supervisor””. • O computador pode controlar a maneira como os softwares são são executados executados.. • O “modo kernel kernel”” ou “modo supervisor” supervisor” é uma maneira privilegiada de execuç execução, que permite que o software controle todo o hardware, hardware e també também controle toda a interaçção de outros softwares com este hardware. intera – No modo kernel um software pode executar operaç operações que outros não podem. Adriano Mauro Cansian 16 Sistema Operacional (5) • O sistema operacional é a porção de software que roda d em “modo d kernel” k kernel l” ou “modo l” d supervisor” supervisor i ” – A defini definiçção do modo de operaç operação é feita no momento da carga do software (durante o boot boot,, no caso do S.O. S.O.)) – Estabelece critérios de uso dos recursos e ordem de acesso aos mesmos, impedindo p violação de regras g de acesso à memória de processos concorrentes e tentativas de acesso simultâneo a um mesmo recurso – Desta forma realiza a gerência e proteção dos dispositivos.. dispositivos Adriano Mauro Cansian 17 Estrutura do S.O. • O S.O. é formado por: – Um conjunto de rotinas (procedimentos) que oferecem serviços ç aos usuários do sistema e suas aplicações, – Outras rotinas do próprio sistema. • Esse conjunto de rotinas é chamado núcleo d sistema do it ou kernel kkernel. l. Adriano Mauro Cansian 18 System Calls • Systems Calls são mecanismos de proteção d núcleo do ú l do d sistema it e de d acesso aos seus serviços. • O usuário (ou aplicação), quando deseja solicitar algum g serviço ç do sistema: – Realiza uma chamada a uma de suas rotinas (ou ç ) através de system y calls ((chamadas ao serviços) sistema), para executar uma função função específica do hardware. Adriano Mauro Cansian 19 Modos de acesso • Existem certas instruções que não podem ser colocadas diretamente à disposição das aplicações. – Pois a sua utilização indevida ocasionaria sérios problemas à integridade do sistema. • As instruções que têm o poder de comprometer o sistema são conhecidas como instruções privilegiadas (ou “modo kernel kernel””). ) • As instruções não não--privilegiadas são as que não oferecem perigo ao sistema. sistema Adriano Mauro Cansian 20 Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / M Monotarefa t f Sistemas Multiprogramáveis / Multitarefa Adriano Mauro Cansian Sistemas com Múltiplos Processadores 21 Sistemas Monoprogramáveis ou Monotarefa • Execução de um único programa (job (job)) por vez vez. – Para ser executado, qualquer outro programa, deve aguardar o término do programa anterior. anterior. • Tipicamente relacionado ao surgimento dos mainframes (computadores de grande porte). porte) • Encontra Encontra--se obsoleto. – É mencionado aqui somente por razões históricas. Adriano Mauro Cansian 22 Sistemas Multiprogramáveis ou Multitarefa • Muito mais complexos e mais eficientes. • Vários p programas g compartilham p e dividem os mesmos recursos, ao mesmo tempo. tempo. – Aumento da produtividade dos usuários e a redução de custos. – Aumenta (e permite) a intera interação ção entre os softwares softwares.. – Permite P i compartilhar ilh dados. d d • Normalmente são multiusuários multiusuários.. • São os sistemas operacionais atuais: Linux Linux,, Microsoft Windows XP, XP, Mac OS X, X, FreeBSD FreeBSD,, S l i , e outros. Solaris, Solaris t Adriano Mauro Cansian 23 Sistemas com Múltiplos Processadores (1) • Dois ou mais CPUs interligadas, trabalhando em conjunto. conjunto • Permitem a interliga interligação ção de CPUs de computadores isolados, isolados, para a solução de problemas complexos. – Fortemente Acoplado • Dois ou mais processadores compartilhando uma única memória e controlados por apenas um único SO. SO. – Fracamente F t Acoplado A l d • Dois ou mais sistemas de computação interligados, sendo que cada sistema possui o seu próprio SO. Adriano Mauro Cansian 24 Sistemas com Múltiplos Processadores (2) • Est Estão ão dando origem ao conceito de “Grid Grid”” de computadores. computadores – Interligação em rede permite que um grande número de computadores atue como um único “super super computador”, para soluç solução de problemas de alta complexidade. – “The Network is the Computer” Computer” http://www.ibm.com/grid/ Adriano Mauro Cansian 25 S.O. Multitarefa Estrutura básica Adriano Mauro Cansian 26 S.O. Multitarefas - Estrutura • Um SO de um computador que é usado por muitas pessoas ao mesmo tempo, é um sistema complexo. p • Para tornar os SOs mais i fáceis f i de d serem escritos, foram criados módulos, sendo cada um responsável por uma função. Adriano Mauro Cansian 27 S.O. Multitarefas - Estrutura • Os principais módulos de um SO Multitarefa/Multiusuário são: – – – – Núcleo (Kernel (Kernel em inglês) Gerenciador de processos (escalonador) G Gerenciador i d dde memória ói Sistema de arquivos Adriano Mauro Cansian 28 Núcleo (Kernel (Kernel)) • Como visto anteriormente, contém chamadas de sistema para serem utilizadas ppor aplicativos, p , gerencia g o acesso ao hardware, entre outros. • Componente principal do SO. Contém todos os outros módulos. Adriano Mauro Cansian 29 Núcleo (Kernel (Kernel)) • Executa funções como: – chaveamento entre programas – controle e programação de dispositivo de h d hardware – gerenciamento de memória – gerenciamento de processos – escalonamento de tarefas – comunicação entre processos – processamento t de d exceções õ e de d interrupção i t ã Adriano Mauro Cansian 30 Gerenciador de processos • Um processo ou tarefa é uma porção de um programa em alguma fase de execução. execução • Uma thread é uma parte separada de um processo. Um processo pode consistir de várias threads cada uma das quais sendo executada separadamente. separadamente Adriano Mauro Cansian 31 Gerenciador de processos Adriano Mauro Cansian 32 Gerenciador de processos • O gerenciador de processos, também conhecido como escalonador escalonador,, deve gerenciar quais processos serão executados pelo l processador d e em que momento. t • Ou seja, ele tem a função de intercalar entre uma tarefa e outra (denomina(denomina-se troca de contexto). contexto ). Adriano Mauro Cansian 33 Gerenciador de processos • Dois modos principais de se fazer escalonamento: – Escalonamento E l por Cooperação C ã indica i di que uma tarefa que está sendo executada atualmente deixará voluntariamente em algum momento o processador e permitirá que outros processos sejam executados. – Escalonamento Preemptivo significa que uma tarefa corrente será interrompida (forçou a se render) e o processador se dedica a outro processo em estado de p espera. Adriano Mauro Cansian 34 Gerenciador de memória • O sistema operacional tem acesso completo à memória do sistema e deve permitir que os p processos dos usuários tenham acesso seguro à memória quando o requisitam. • O SO é responsável também por gerenciar o modo como os dados são armazenados na memória principal. Adriano Mauro Cansian 35 Gerenciador de memória • Alguns SOs utilizam o conceito de memória virtual que nada mais é que a simulação de uma memória p principal p em um disco físico (HD). Adriano Mauro Cansian 36 G Gerenciador i d d de memória ói • Vários sistemas operacionais usam memória virtual, virtual, que possui 3 funções básicas: – assegurar que cada processo tenha seu próprio espaço de d endereçamento d t para evitar it ou resolver l o problema de realocação; – prover proteção t ã da d memória ó i para impedir i di que um processo utilize um endereço de memória que não lhe pertença; – possibilitar que uma aplicação utilize mais memória do que a fisicamente existente. existente Adriano Mauro Cansian 37 Sistema de arquivos • Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que permitem ao sistema operacional i l controlar l o acesso ao disco di rígido. id • Existem diversos sistemas de arquivos diferentes, que vão desde sistemas simples como o FAT16 FAT16,, que utilizamos em cartões de memória, até sistemas como o NTFS, EXT3 e ReiserFS, ReiserFS, que incorporam recursos muito it mais i avançados. d Adriano Mauro Cansian 38 Sistema de arquivos Adriano Mauro Cansian 39 Sistema de arquivos • Sistemas de arquivos utilizados pelo Windows: FAT16, FAT32, NTFS. • Sistemas de arquivos utilizados por sistemas Unix: Ext2, Ext3, ReiserFS ReiserFS,, XFS, etc. Adriano Mauro Cansian 40 Sistema de arquivos Adriano Mauro Cansian 41 Compiladores e interpretadores Compiladores e interpretadores • Como já já dito anteriormente, são: – Softwares especiais que traduzem ou interpretam os programas escritos em diferentes linguagens de programaç programação ão.. – Dão origem g aos aplicativos. p – Estes softwares especiais e as linguagens de programaç programa ção ser serão ão discutidos mais adiante. adiante Adriano Mauro Cansian 43 Softwares aplicativos Softwares “prontos prontos””, para uso geral e especíífico. espec Básicos Sistemas Operacionais Aplicativos Utilitários G i Gerais Editor de textos Planilhas eletrônicas l t ô i Adriano Mauro Cansian E Específicos ífi Bancos de dados 45 Software Aplicativo Geral • Editores de textos. • Planilhas eletrônicas. • Software de e e--mail (Pegasus (Pegasus,, Outlook, Thunderbird). Thunderbird ). • Navegador N d d de IInternet t t (browsers ((b b browsers). ) ). • Softwares para tocar áudio e vídeo. • Instant messengers ou Comunicação Comunicação instantânea (MSN, ICQ, etc…) etc…) • Compartilhamento p de música ((kazaa kazaa,, e-donkey donkey, y, Napster,, etc…) Napster etc…) • Gerenciadores de projetos. • Muitos outros… Adriano Mauro Cansian 46 Planilhas Eletrônicas A B C D E F G H I Adriano Mauro Cansian 47 Bancos de Dados Adriano Mauro Cansian 48 Pacotes Integrados Planilhas Pl ilh Banco de Dados Editores de Texto Organizador de grupo de trabalho Adriano Mauro Cansian 49 Correio Eletrônico ! ELETRONIC - MAIL EDI ! Adriano Mauro Cansian 50 Browsers ou navegadores Adriano Mauro Cansian 51 Software aplicativo espec específico ífico (1) • Desenvolvido ““sob sob--medida medida”. ”. – Desenvolvido D l id pelo l programador, d para aplicações li õ específicas. • Exemplos: – – – – Controle de processos. Operações especiais especiais. Cálculos especiais. Muitos outros… • Software adaptado às necessidades do usuário ou do sistema a ser controlado. Adriano Mauro Cansian 52 Software aplicativo p espec específico p ífico ((2)) Programa café = + Adriano Mauro Cansian 53 Até At é aqui vimos: • Caracter Características ísticas lógicas dos sistemas computacionais, t i i e sua relação l ã com os softwares – Softwares básicos • Sistema operacional • Compiladores e interpretadores – Softwares aplicativos • Gerais • Específicos Adriano Mauro Cansian 54 Nossos pr próximos óximos passos • Veremos as linguagens de programa programação ção.. • Come Começaremos çaremos a estudar os algoritmos. • E, E depois, depois começaremos a aprender a programar… programar … • Are you ready ?? ;;-) Adriano Mauro Cansian 55 Este material tem fin al id a de merame n te educac io n al e ˇ tot a lme n te GR A T U IT O . Estas notas de au la po d e m c on ter fig u ras o u te x to s e x tr a ’dos dos d e outras fontes , as qua is, quan d o oc o rr e re m , ser‹ o dev id a m ent e c itada s . O s d ire itos auto ra is dos te x tos c itados s‹o de propr ie dade de seus deten tores . Esta n‹o ˇ u m a obra c o m erc ia l. A ci ta ¨ ‹ o o u uso d e material d e o u tro s a u tore s , qua n d o o correr, tem fi n al idade m erame n te d id‡ti c a. Ne m o a utor , ne m a UNESP, UNESP se responsab b ili za m por qu aii squer danos d d iretos i t ou ind i d ir i eto t s que o uso de s te m ater ia l possa eventua lm e n te caus a r. Este m ater ia l pod e se r cop iado li vr e m ente , desde que c ita das to d as as fonte s , e r espe ita d os o s detent o res dos d ire itos au tora is, e d esde q ue o m at e ria l se ja d istr ibu’do p o r inte iro e n‹o e m p a rtes, inc lus ive co m os p ref‡c ios. A refe r nc ia a qua lq u e r produt d t o co m erc ia i l e spec’f ’f ico i , m a rca, m o d e lo, l esta t b e lec l im i e n to t c o m erc ia i l,l processo ou s e rv i¨o, at ravˇs de n o m e co m erc ia l, m ar c a reg ist rada, n o m e d e fabr icant e , fo rnece d or , ou no m e d e e m p res a , necess a ria m e nte N Ģ O const itu i ou ins inua seu endosso, rec o m enda ¨ ‹o, ou favorec im e nto por par te da UNES P ou do aut o r. A UNESP ou o autor n‹o e n dossa m ou reco m e nda m m arcas , produto s , estabe lec im entos co m erc ia is, serv i¨os ou fornece d ores de qua is q ue r espˇc ies, e m nenh u m a h ip —tese. As eve n tua is m arcas e paten tes m enc ionada s s‹o de p ropr ie d ade e x c lus iva dos det e nto res or ig ina is dos s eus d ire it os e , quando c ita das, a p arec e m m e ra m e n te e m car‡ter info rm at ivo, p a ra au x ilia r o s part ic ipan p p tes do c u rso, n u m a ba s e de b oa -fˇ p b li ca. Os p part ic ip p antes o u outros int e ressados de ve m ut ili zar es tas inf o rm a¨›es p o r sua conta e r is c o, e estare m c ientes d esta n o tifica¨‹o. Este material é parcialmente baseado nos slides “Introducão à Informática Histórico e Evolução””. Evolução”. Evolução ” © Copyright 2004 - Prof.Luiz Prof Luiz Affonso Henderson Guedes de Oliveira, Oliveira Prof. Prof Kliger Kissinger F. Rocha Prof. Valnaide Gomes Bittencourt. UFRN - Universidade Federal do Rio Grande do Norte / Centro de Tecnologia. Departamento de Computação e Automação. Todos os direitos reservados aos autores. autores. Adriano Mauro Cansian 56