Planeamento

Propaganda
Planeamento
Introdução ao Sistema Operativo UNIX
Java: Ferramentas, Entradas/Saídas, Excepções
Threads e Semáforos
Problemas de Sincronização
Jantar dos Filósofos, Leitores/Escritores, ...
Sockets Stream
Sockets Datagram
Security Manager
Projecto: Sincronização e Comunicação entre Processos
Sistema UNIX
Modularidade
Facilidade em acrescentar/remover módulos
Multitarefa
Realização de várias tarefas (processos) ao mesmo tempo
Multiutilizador
Acesso ao computador por vários utilizadores ao mesmo tempo
Portabilidade
Comunicações
Entre programas (IPC - Interprocess communications)
Entre utilizadores
Sistema UNIX
O Kernel do UNIX é o núcleo do Sistema Operativo
Aloca tempo e memória para os programas
Faz a gestão de arquivos de comunicações em resposta a chamadas de
sistema
A Shell age como interface entre o utilizador e o núcleo
C Shell (CSH)
Prompt: %
Bourne Shell
Kernel Shell
Sistema UNIX
Em UNIX, tudo é um arquivo ou um processo
Um processo é um programa em fase de execução identificado por um PID
único (identificador de processo)
Um arquivo é uma coleção de dados. São criados pelos utilizadores que
usam os editores de texto, compiladores, linkers, etc...
sun1% ls -la
total 28
drwxr-xr-x
drwxr-xr-x
-rw-r--r--rw-r--r--rw-r--r--rw-r--r--
2
3
1
1
1
1
pcampos
pcampos
pcampos
pcampos
pcampos
pcampos
aluno
aluno
aluno
aluno
aluno
aluno
512
512
850
540
1297
907
Mar
Mar
Mar
Mar
Mar
Mar
3
3
3
3
3
3
11:05
11:03
11:04
11:01
11:04
11:01
.
..
KKMultiServer.class
KKMultiServer.java
KKMultiServerThread.class
KKMultiServerThread.java
Sistema UNIX
A estrutura das directorias:
Todos os arquivos se agrupam numa estrutura de directorias
O sistema de arquivos é organizado numa estrutura hierárquica, como
uma arvore invertida
O topo da hierarquia é tradicionalmente chamado “raíz” (root)
Directorias mais importantes:
/
root
/boot
arquivos de boot
/unix ou /vmunix
kernel do S.O.
/bin ou /usr/bin
executáveis principais
/dev
dispositivos, arquivos de E/S
/etc
arquivos para administração
Sistema UNIX - Directorias
ls (list schema)
lista arquivos e directorias
mkdir (make directory)
cria directorias
cd (change directory)
muda para uma directoria diferente
cd ~
•
desloca o utilizador para a sua directoria home
pwd (print working directory)
pathnames (caminhos)
Sistema UNIX - Arquivos
cp (copy)
copia arquivos
mv (move)
move arquivos
rm (remove), rmdir (remove directory)
apaga arquivos ou directorias
cat (concat)
mostra o conteúdo de um arquivo no écran
grep
pesquisa sobre o conteúdo de um arquivo
Sistema UNIX - Redireccionamento
comando
comando
> arquivo
>> arquivo
comando arq1
comando1
< arq2
| comando2
cat arq1 arq2
who
> arq3
Redirecciona a saída de um
comando para um arquivo
Insere a saída de um comando
no conteúdo de um arquivo
Redirecciona a entrada para um
arquivo
A saída do comando1 é a entrada
do comando2
Concatena os arquivos arq1 e
arq2 gerando arq3
Lista os utilizadores “logados”
actualmente no sistema
Sistema UNIX - Permissões
chmod
altera os direitos de acesso
Símbolo
u
g
o
a
r
w
x
+
–
Significado
Utilizador [user]
Grupo [group]
Outros [other]
Todos [all]
Leitura
Escrita
Execução
adiciona permissão
retira permissão
chmod go-rwx proj.java
chmod a+rw proj.java
Sistema UNIX - Processos
ps
Mostra os processo que estão em execução
ps -u pcampos
PID TTY
4221 pts/1
4255 pts/1
TIME CMD
0:00 csh
0:00 vi
top é mais informativo...
Processes: 44 total, 3 running, 41 sleeping... 118 threads
14:45:42
Load Avg: 0.41, 0.55, 0.54
CPU usage: 81.1% user, 18.9% sys, 0.0% idle
SharedLibs: num = 120, resident = 36.6M code, 3.59M data, 7.79M LinkEdit
MemRegions: num = 5959, resident = 142M + 10.1M private, 91.9M shared
PhysMem: 54.1M wired, 65.7M active, 308M inactive, 428M used, 83.8M free
VM: 2.48G + 90.2M
75141(0) pageins, 2945(0) pageouts
PID
1062
1060
1059
COMMAND
top
tcsh
login
%CPU
9.4%
0.0%
0.0%
TIME
#TH #PRTS #MREGS RPRVT
0:02.81
1
16
26
284K
0:00.04
1
13
21
384K
0:00.04
1
13
37
144K
kill
Força a terminação de um processo
RSHRD
436K
668K
428K
RSIZE
1.74M
880K
504K
VSIZE
27.1M
22.1M
26.9M
Sistema UNIX - Outros...
UNIX é Case-Sensitive
Ctrl+C (^C)
Cancela o processo que está em primeiro plano
Ctrl+Z (^Z)
Suspende o processo que está em primeiro plano
man (manual)
Fornece ajuda sobre os comandos e não só
Editor pico e editor vi
Telnet, SSH
Java - Ferramentas
Java 2 Platform, Standard Edition:
http://java.sun.com/j2se/1.4.2/download.html
JCreator LE:
http://www.jcreator.com
Eclipse IDE:
http://www.eclipse.org
Sistema UNIX - Exercícios
1. Crie um directório public_html na sua área de trabalho.
2. Use os comandos ls, pwd e cd para explorar o sistema de arquivos. (Lembre-se,
caso se perca dentro do sistema de arquivos, digite cd sem argumentos para
voltar à sua directoria home.)
3. Com recurso a um editor de texto, crie um ficheiro index.html:
<html><head><meta http-equiv="Content-Language" content="pt">
<title>Página de Teste Criada na Aula 1 de Sistemas Operativo</title>
</head>
<body><p align="center">Página de web de teste.</p>
<p align="center">Logo que possível actualizaremos esta página.</p>
</body></html>
4. Mova o ficheiro criado para o interior do directório public_html.
5. Verifique o conteúdo o ficheiro através do comando cat index.html.
6. Com recurso ao comando grep, obtenha o número da linha que contém a
palavra “web”, no ficheiro index.html.
7. Altere as permissões da directoria public_html, de modo que o ficheiro criado
fique disponível na Internet.
Download