You are on page 1of 14

INSTITUTO FEDERAL DE SO PAULO - SPO

CURSO DE ANLISE E DESENVOLVIMENTO DE SISTEMAS

ANDERSON FREITAS DA SILVA - 1466101

VISO GERAL DO UNIX

SO PAULO - SP
0

2015
ANDERSON FREITAS DA SILVA 1466101

VISO GERAL DO UNIX

Trabalho apresentado Universidade


Federal de So Paulo SPO para composio
de notas do 3Semestre do curso de Anlise e
Desenvolvimento de Sistemas.
Orientador Professor Leandro

SO PAULO - SP
1

2015

SUMRIO
1

INTRODUO...........................................................................................3

O UNIX.......................................................................................................4

2.1

HISTRIA.....................................................................................................4

2.2

UMA VISO GERAL DO SISTEMA UNIX.....................................................5

2.3

ESTRUTURA DO SISTEMA.............................................................................6

2.3.1 Ncleo do Sistema UNIX............................................................................6


2.3.2 Shell.............................................................................................................7
2.3.3 Sistema de Arquivos....................................................................................7
2.4

DIRETRIOS.................................................................................................7

2.5

ARQUITETURA DO SISTEMA OPERACIONAL.................................................7

2.5.1 Escalonamento............................................................................................7
2.5.2 Processos.....................................................................................................7
2.5.3 Critrios de Escalonamento........................................................................8
2.5.4 Escalonamento no UNIX.............................................................................8
2.6

POSIX (PORTABLE OPERATING SYSTEM INTERFACE).................................9

2.7

PROGRAMAS DE SISTEMA............................................................................9

2.8

ESTATSTICA E USO....................................................................................10

CONCLUSO...........................................................................................12

BIBLIOGRAFIAS.....................................................................................13
2

INTRODUO
Este documento visa explorar aspectos histricos que envolvem o desenvolvimento

do sistema operacional UNIX com o objetivo de entender melhor o funcionamento deste


sistema operacional interativo, de tempo compartilhado de multiprogramao (aparente
paralelismo utilizando um nico processador).
Dentre os pontos fortes do SO UNIX esto em sua interface de programao de
aplicativos, a portabilidade em mltiplas plataformas de hardware, Alm do fato dele ter sido
projetado por programadores para programadores, com o objetivo de proporcionar elementos
bsicos para serem mixados em diversas tarefas.
Mas essa ideia veio sendo abandonada nas verses mais recentes de simplicidade e
portabilidade, apresentando inclusive problemas de padronizao e verses incompatveis.
Mesmo Assim, as inmeras verses do UNIX no fica para trs funcionando em mais
arquiteturas de computadores do que os concorrentes, inclusive vem sobrevivendo a diversas
mudanas tecnolgicas at a atualidade.

O UNIX
Unix (ou *nix) o nome da linha de sistemas operativos baseados no original UNIX,

desenvolvidos nos padres POSIX (Portable Operating System Interface) e outros. Alguns dos
Sistemas Operacionais derivados do Unix so: BSD (FreeBSD, OpenBSD e NetBSD), Solaris
(anteriormente conhecido por SunOS), IRIXG, AIX, HP-UX, Tru64, SCO, Linux (nas suas
centenas de distribuies), e at o Mac OS X (baseado em um ncleo Mach BSD chamado
Darwin). Existem mais de quarenta sistemas operacionais *nix, rodando desde celulares a
supercomputadores, de relgios de pulso a sistemas de grande porte.

2.1

Histria
O Sistema UNIX foi desenvolvido no Bell Laboratories, companhia controlada pela

AT&T (Companhia americana de Telecomunicaes - American Telephone and Telegraph). A


maioria dos sistemas operacionais foi desenvolvida por fabricantes de computadores para
venderem computadores. Considerando que a AT&T no estava no negcio de vendas de
computadores, o UNIX no tinha essa caracterstica, tornando-se comercial devido sua
expectativa e criao de demanda.
Em meados dos anos 60, a Bell Labs estava envolvida com um sistema operacional
chamado Multics. O Multics um ambicioso sistema interativo de mltiplos usurios que
utiliza uma CPU de computador GE. A Bell Labs retirou-se do projeto Multics em 1969
devido ao insucesso, principalmente porque o projeto estava alm de sua poca e tambm, o
sistema operacional foi escrito em uma linguagem muito pesada, com compilador ineficiente
(TANENBAUM, 1992). , mas o Multics teve importante influncia no Sistema UNIX. Na
verdade, o nome UNIX proveniente do Multics uma vez que ele uma forma resumida, com
linguagem assembly e uma nova linguagem criada apenas para esse fim.
Mais ou menos no mesmo momento em que a Bell se retirou do projeto Multics, Ken
Thompson, idealizar do Sistema Operacional UNIX, comeou a consertar um
minicomputador rejeitado, da Digital Equipament Corporation, o PDP-7. Ostensivamente,
Thompson desejava criar um sistema operacional que pudesse apoiar os esforos coordenados
de um time de programadores num ambiente de pesquisa de programao. Este objetivo foi
4

alcanado com sucesso. Thompson props que os prximos desenvolvimentos do sistema


UNIX fossem apoiados pela Bell para fornecer uma ferramenta de preparao de documento
organizao de patentes da companhia.
A princpio Ken Thompson objetivava a criao de um sistema operacional, um PDP-7
montador, e vrios programas utilitrios em linguagem de mquina. Em 1973, Dennis Richie
reescreveu o Sistema UNIX na linhagem de alto nvel com o nome de C, de propsito geral,
que foi desenvolvida por Richie, o qual permitiu que o sistema UNIX, no se restringisse a
uma nica arquitetura, mesmo no sendo objetivo primordial, em 1976 Ritchie e Stephen
Johnson conseguiro a primeira portabilidade, quando eles transportaram o Sistema UNIX
para o Interdata 8/32.
O UNIX era destinado a ser utilizado dentro do sistema Bell, a AT & T comea a
licenciar Unix a terceiros a partir de final de 1970, dando inicio a uma variedade de verses
tanto acadmicas quanto comerciais do Unix de fornecedores como a universidades e
empresas como a Microsoft, IBM e Sun Microsystems. AT & T vendeu seus direitos autorais
do Unix para a empresa Novell em meados de 1990, que, por sua vez, a revendeu para o Santa
Cruz Operation (SCO), em 1995, mas a marca UNIX passou para o consorcio de padres da
indstria The Open Group, que permite o uso da marca para os sistemas operacionais
certificadas em conformidade com a Single UNIX Specification. Entre elas est a Apple, que
a verso Unix com a maior base instalada a partir de 2014.

2.2

Uma Viso Geral do Sistema UNIX


O Unix capaz de executar muitas tarefas ao mesmo tempo denominadas preemptiva,

na verdade, apenas um processo executado, porm, so escalonados em velocidades


altssimas em pilha, dando a impresso de ser ao mesmo tempo. Com a caracterstica de ser
multiusurio, geralmente por meio de terminais, atravs de portas seriais ou conexes de rede.
Ele faz a gerencia dos pedidos de usurio e de pilha escalonada entre eles, impedindo que um
utilize o recurso do outro.
Com diferentes permisses para manipular os arquivos gerados e direito de
propriedade sobre os eles os arquivos que forem modificados conservaram tais direitos.
5

Dois tipos de usurios so empregados no sistema Unix: o usurio root, ou super


usurio, que tem privilgios de manipular qualquer recurso do hypervisor e tem a tarefa de
gerenciar sistema e usurios comuns com permisses restritivas de uso.

2.3

Estrutura do Sistema
O sistema operacional UNIX composto de quatro partes bsicas:

Kernel - ncleo do sistema operacional, parte que relaciona-se o

hardware do computador e Shell do UNIX.

Shell - parte que permite que o usurio tecle os comandos, acionando o


kernel e traduzindo o comando proveniente do shell em comando de hardware.

Sistema de arquivos - mtodo de armazenamento por hierarquia de


informaes, em uma sequncia simples de bytes, podendo ser de textos, planilhas,
arquivos binrios etc.

Aplicaes - programas de usurios executados pela shell que podem


ser instaladas pelo usurio atravs de softwares ou so fornecidas pelo prprio UNIX.

2.3.1

Ncleo do Sistema UNIX


O ncleo o principal gerenciador do UNIX, tem a funo de escalonar processos,

alocar memoria, atende a solicitao de servio dos processos e superviso de transmisso dos
dados entre os dispositivos perifricos e o armazenamento principal.
O ncleo do UNIX executa um numero pequeno de servios, se comparado aos demais
sistemas operacionais, ele no atende nenhum servio de usurios diretamente, este servio
sempre realizado por aplicativos utilitrios que intermediam as chamadas, pois mais fcil
criar programas, personalizar e mant-los, que a manipulao do ncleo mesmo aps de anos
de estabilidade relativa.
2.3.2

Shell
Os computadores para interpretar os comandos digitados pelos usurios necessitam de

um interpretador de comandos, no caso do UNIX, o interpretador padro o shell, locado


entre o kernel e o usurio, facilitando a comunicao que seria difcil em linguagem de
6

maquina. O shell tambm tem a funo de canalizao (pipeline). Est funo possibilita a
conexo de sada de um aplicativo com a entrada de outro. Dois shells so normalmente
usados: um desenvolvido pela Bell Laboratories chamado Shell Bourne e o desenvolvido pela
Universidade da Califrnia, em Berkeley, chamado Shell C.
2.3.3

Sistema de Arquivos
O Sistema de Arquivos descreve o tipo e a organizao dos dados, uma estrutura

lgica que organiza como os dados so armazenados e recuperados a partir do diretrio raiz
(/). At os dados alocados em dispositivos distintos necessitam est inseridos na rvore para
serem acessados, todos dispositivos tem sua prpria rvore, o comando utilizado para este fim
e o mount que o associa a um subdiretrio.
2.4

Diretrios
O diretrio dividido em muitos subdiretrios variando entre as verses, um deles o

diretrio root, onde todos os arquivos de sistema esto. Normalmente, o inicio de uma procura
no diretrio root.

2.5 Arquitetura do Sistema Operacional


2.5.1 Escalonamento
Antes de uma abordagem direta ao escalonamento da CPU e a forma que
implementada no Sistema UNIX, necessria a explicao sobre processos e os estados que
eles podem assumir depois que so criados e prontos para a execuo.
2.5.2 Processos
Um processo, uma instncia de um programa em execuo que ser executado, ter
que est na memria para ser executado e est memria dividida em trs partes text, data e
stack.
O UNIX faz uso de uma tabela de processos, onde ficam as informaes de cada
processo. Somente um processo pode ganhar o processador por vez o processo pode se
encontrar no status (estado) running (executando). E os demais processos podem estar no
estado ready (prontos), em espera em stacks (pilha) de processos, ou ento em sleep
(dormindo), esperando sua vez no processador. O processo pode sair do processador ou por
7

precisar de algum outro recuso, executando uma chamada ao sistema e mudando para o estado
dormindo at a liberao do recurso ou por uma preempo (interrupo do processo pelo
ncleo) indo para a pilha no estado pronto.
2.5.3 Critrios de Escalonamento
medida que a mais de um processo a para ser executado , o sistema operacional ter
que decidir quem ir primeiro atravs do escalonador e o algoritmo utilizado para tal
precisamos observar alguns pontos importantes como:

Evitar o starvation (tempo de espera para execuo prolongado),

garantindo que todos os programas tenham acesso ao processador;

No permitir lacunas de uso do processador, garantindo a eficincia;

Em processos interativos prover o menor tempo de resposta;

Garantir vazo por fatia de tempo.

2.5.4 Escalonamento no UNIX


No UNIX temos tanto escalonamento por Prioridades quanto Round Robin para o
melhor desempenho do processador, so divididos em prioridades Alta (modo ncleo) e baixa
(modo usurio)
A primeira de alta prioridade mantem os processos bloqueados aguardando swapping,
I/O em disco, buffers de cache e inodes. Para gil liberao dos recursos permanecem com
chamadas ininterruptamente e o de prioridade baixa, pode ser interrompido porque usam
poucos recursos do ncleo.
Se houver mais de um processo apto a ser executado em mesmo nvel de prioridade,
ele selecionado pela poltica Round Robin. Podemos perceber que a ento escalonamento de
processos em duas direes uma vertical (prioridades) e outra horizontal (Round Robin).

2.6

POSIX (Portable Operating System Interface)


POSIX um projeto IEEE de normas que nasceu da necessidade de padronizao de

uma interface do sistema operacional, com o objetivo de garantir a portabilidade do cdigo


8

fonte de um programa a partir de um sistema operacional que atenda as normas POSIX para
outro sistema POSIX, esse termo foi sugerido por Richard Stallman, a letra X para
representar herana ao UNIX.

2.7

Programas de Sistema
So aplicaes, que trabalham em locais no privilegiados de memria, que atuam

entre o usurio e o ncleo. Basicamente so o ambiente grfico GUI (graphics user interface),
Shell onde o usurio digita os comandos, conjunto de biblioteca C (libc) e programas
utilitrios usados para manipular arquivos, controlar processos, etc.

2.8

Estatstica e uso
Em top500 podemos ver a estatstica de uso dos 500 maiores computadores da

atualidade
Figura 1 - Famlia de sistemas operacionais mais usados

Fonte: http://www.top500.org/statistics/list/

10

Figura 2 - Famlia de sistemas operacionais por desempenho.

Fonte: http://www.top500.org/statistics/list/

Tabela 1 - Totais sistemas em nmeros.

Fonte: http://www.top500.org/statistics/list/

11

CONCLUSO
Podemos perceber com esse trabalho que o UNIX teve grande importncia no

desenvolvimento de sistemas operacionais que garantem excelente desempenho ao nvel de


funcionamento de qualquer rede e que garantem alta facilidade de aprendizagem, isto se d
porque, na poca, somente especialistas trabalhavam em sistemas, tambm contribuiu na
aprendizagem universitria e ainda contribui at hoje.
Outro aspecto muito importante no UNIX a sua portabilidade, pelo fato de ser escrito
em linguagem C, permiti coloca-lo em outra mquina diferente.

12

BIBLIOGRAFIAS

FAVARO, Anderson. Sistemas Operacionais. Disponvel em:


<http://www.slideshare.net/sistemaoperacional/unix-sistema-operacional-presentation>.
Acesso em: 19/06/2015.
EUGENIO, Cristina Munhoz. Introduo ao SO UNIX.
<ftp://ftp.unicamp.br/pub/apoio/treinamentos/unix/unix_basico.pdf>. Acessado em:
19/06/2015.
MAGALHES, Maurcio Ferreira. ELERI, Cardoso. FAINA. Lus Fernando.
INTRODUO AOS SISTEMAS OPERACIONAIS. Disponvel em:
<http://www.daniel.prof.ufu.br/apostilas/Intr_SO2.pdf>. Acessado em: 20/06/2015.
TOP500. Disponvel em: <http://www.top500.org/statistics/list/>. Acessado em
19/06/2015.

13