OS resource management and processes · Gerenciamento de recursos e processos do SO
| English | Português |
|---|---|
| process/ˈprəʊses/ | processo |
| scheduler/ˈʃedjʊlə/ | escalonerador |
| multi-tasking/ˈmʌlti ˈtæskɪŋ/ | multitarefa |
| spooling/ˈspuːlɪŋ/ | spooling |
| caching/ˈkæʃɪŋ/ | cache |
| round robin/raʊnd ˈrɒbɪn/ | round robin |
| context switch/ˈkɒntekst swɪtʃ/ | troca de contexto |
| process control block/ˈprəʊses kənˈtrəʊl blɒk/ | bloco de controle de processo |
Why the mouse still moves when everything has frozen
- A program locks up. The window will not repaint, the spinner stops, nothing responds. Yet the mouse pointer still glides across the screen exactly as before.
- That is the operating system telling you something: the machine is not stuck, one process 进程 is. The scheduler is still handing out slices of the processor, and the frozen program is simply not doing anything useful with its.
- Every resource in the machine is shared this way: the processor by time, memory by space, the printer by a queue.
- This lesson is how an OS gets the most out of those resources, and how it manages a process from creation to termination.
Porquê o rato ainda se move quando tudo congelou
- Um programa trava. A janela não repinta, o indicador de carregamento para, nada responde. No entanto, o ponteiro do rato continua a deslizar pelo ecrã exatamente como antes.
- Isso é o sistema operativo a dizer-lhe algo: a máquina não está parada, um processo 进程 está. O programador continua a distribuir fatias do processador, e o programa congelado simplesmente não está a fazer nada útil com a sua.
- Cada recurso na máquina é partilhado desta forma: o processador por tempo, memória por espaço, a impressora por uma fila.
- Esta lição é sobre como um OS obtém o máximo desses recursos, e como gere um processo desde a criação até ao término.
Getting the most from the resources
- Multi-tasking 多任务: the processor is switched rapidly between processes, so several appear to run at once even though only one is executing at any instant.
- Paging: memory is moved between RAM and disk so more programs can be open than physical memory allows.
- Spooling 假脱机: output for a slow device is queued on disk, so the processor never waits for a printer. Caching 缓存 keeps recently used data in fast memory so it need not be fetched again.
- The OS also hides all of this behind a user interface, a command line or a GUI.
Tirar o máximo dos recursos
- Multi-tarefa 多任务: o processador é alternado rapidamente entre processos, para que vários pareçam correr ao mesmo tempo, embora apenas um esteja a executar em qualquer instante.
- Paging: a memória é movida entre RAM e disco para que mais programas possam estar abertos do que a memória física permite.
- Spooling 假脱机: a saída para um dispositivo lento é colocada em fila no disco, para que o processador nunca espere por uma impressora. Caching 缓存 mantém os dados recentemente usados em memória rápida para que não precisem de ser buscados novamente.
- O OS também esconde tudo isto atrás de uma interface de utilizador, uma linha de comandos ou um GUI.
Multi-tasking lets several programs appear to run at once by: · Multi-tarefa permite que vários programas pareçam executar simultaneamente através de:
The OS rapidly switches the single CPU between processes so they all seem to progress together. · O SO alterna rapidamente a única CPU entre processos para que todos pareçam progredir juntos.
Worked example: why spooling helps
- Explain how spooling improves the use of a computer's resources. [3]
- A printer is thousands of times slower than the processor, so a program sending output directly would wait for it and the processor would sit idle.
- With spooling the output is written quickly to a queue on disk, and the program continues immediately.
- A separate process then feeds the printer at its own speed, and several jobs can queue while the processor gets on with other work. Name the slow device, the queue, and what the processor does instead.
Exemplo resolvido: porquê o spooling ajuda
- Explique como o spooling melhora a utilização dos recursos de um computador. [3]
- Uma impressora é milhares de vezes mais lenta que o processador, por isso um programa que envia saída diretamente teria de esperar por ela e o processador ficaria ocioso.
- Com o spooling, a saída é escrita rapidamente numa fila no disco, e o programa continua imediatamente.
- Um processo separado alimenta então a impressora à sua própria velocidade, e vários trabalhos podem ficar em fila enquanto o processador segue com outro trabalho. Nomeie o dispositivo lento, a fila e o que o processador faz em vez disso.
Spooling helps the system because: · Spooling ajuda o sistema porque:
Spooling buffers print jobs to disk so the fast CPU is not held up by the slow printer. · Spooling faz buffer de trabalhos de impressão no disco para que a CPU rápida não seja atrasada pela impressora lenta.
Which techniques help an OS get the most from its resources? Select all · todos that apply. · Quais técnicas ajudam um SO a obter o máximo de seus recursos? Selecione todos que se aplicam.
Sharing time, queueing for slow devices and keeping hot data close. Killing waiting processes would lose the user's work, not improve utilisation. · Compartilhamento de tempo, filas para dispositivos lentos e manutenção de dados quentes próximos. Matar processos em espera perderia o trabalho do usuário, não melhoraria a utilização.
Processes and the scheduler
- A process is a program in execution: its code, its current state, its memory and its open files. A program on disk is not a process; a program running is.
- The scheduler 调度器 decides which ready process runs next and for how long. Its goals are to keep the processor busy, respond quickly to interactive users, and be fair.
- Round robin 轮转 gives each ready process a fixed time slice and then sends it to the back of the queue: simple, fair and responsive. Other policies are first come first served, shortest job first and shortest remaining time.
Everyone gets a turn, and nobody keeps the processor
Processos e o programador
- Um processo é um programa em execução: o seu código, o seu estado atual, a sua memória e os seus ficheiros abertos. Um programa em disco não é um processo; um programa em execução é.
- O programador 调度器 decide qual o processo pronto a correr a seguir e por quanto tempo. Os seus objetivos são manter o processador ocupado, responder rapidamente aos utilizadores interativos e ser justo.
- Round robin 轮转 dá a cada processo pronto uma fatia de tempo fixa e depois envia-o para o fim da fila: simples, justo e responsivo. Outras políticas são first come first served, shortest job first e shortest remaining time.

Todos têm a sua vez, e ninguém fica com o processador
Round-robin scheduling gives each ready process a fixed time slice, then moves it to the back of the queue — making it fair and responsive. · O escalonamento Round-robin dá a cada processo pronto um slice de tempo fixo, depois move-o para o final da fila — tornando-o justo e responsivo.
Equal time slices in turn stop any one process hogging the CPU, so interactive programs stay responsive. · Slices de tempo iguais em turno impedem que qualquer processo monopolize a CPU, mantendo programas interativos responsivos.
What is a process? · O que é um processo?
The file on disk is a program; once it is loaded and running, with state of its own, it is a process. · O arquivo em disco é um programa; uma vez carregado e em execução, com seu próprio estado, é um processo.
The process states
- New: being created. Ready: able to run, waiting only for the processor. Running: currently executing. Blocked: waiting for something else, usually input or output. Terminated: finished.
- The transitions are what the exam asks for. Running to ready when the time slice expires. Running to blocked when the process requests I/O. Blocked to ready when that I/O completes. Ready to running when the scheduler selects it.
- Note the asymmetry: a blocked process never goes straight back to running. It rejoins the ready queue and waits its turn.
Five states, and the reasons for each arrow
Os estados do processo
- New: sendo criado. Ready: capaz de correr, esperando apenas pelo processador. Running: atualmente a executar. Blocked: à espera de outra coisa, normalmente entrada ou saída. Terminated: terminado.
- As transições são o que o exame pede. Running para ready quando a fatia de tempo expira. Running para blocked quando o processo solicita E/S. Blocked para ready quando essa E/S termina. Ready para running quando o programador o seleciona.
- Note a assimetria: um processo blocked nunca volta diretamente a running. Reintegra a fila ready e espera a sua vez.

Cinco estados, e as razões para cada seta
Match each process state to what it means. · Combine cada estado de processo com o que significa.
A process cycles ready → running → (blocked) → ready, until it terminates. · Um processo oscila entre pronto → executando → (bloqueado) → pronto, até ser terminada.
Worked example: trace a process
- A process is running when it asks to read a file. Describe what happens to it.
- It moves from running to blocked, because it cannot continue until the data arrives, and the scheduler immediately gives the processor to another ready process rather than waiting.
- When the disk finishes, the process moves from blocked to ready. It does not resume immediately; it joins the ready queue.
- The scheduler later selects it, and it moves from ready to running, continuing from exactly where it stopped.
Exemplo resolvido: rastrear um processo
- Um processo está a correr quando pede para ler um ficheiro. Descreva o que acontece com ele.
- Move-se de running para blocked, porque não pode continuar até os dados chegarem, e o programador dá imediatamente o processador a outro processo pronto em vez de esperar.
- Quando o disco termina, o processo move-se de blocked para ready. Não retoma imediatamente; junta-se à fila ready.
- O programador mais tarde seleciona-o, e move-se de ready para running, continuando exatamente de onde parou.
The life of a process · A vida de um processo
Tap round the loop a process travels. It only runs when the scheduler picks it; needing I/O sends it to blocked, and finishing its time slice sends it back to ready — round and round until it's done. · Observe o ciclo pelo qual um processo passa. Ele só executa quando o escalonador o seleciona; necessitar de E/S o envia para bloqueado, e terminar seu slice de tempo o devolve à fila de prontos — rodando e rodando até que termine.
A running process asks to read a file. Put what happens to it in order. · Um processo em execução pede para ler um arquivo. Coloque em ordem o que acontece com ele.
A blocked process never returns straight to running: it rejoins the ready queue and waits its turn. · Um processo bloqueado nunca retorna diretamente para executando: ele se junta à fila de prontos e espera sua vez.
Context switching
- To change which process is running, the OS saves the current process's state, its registers, program counter and status, into its process control block 进程控制块, then loads the next process's state from that process's own block.
- That is a context switch 上下文切换. It has a real cost: during it the processor is doing housekeeping, not the user's work.
- So the time slice is a trade-off. Too long and interactive programs feel sluggish; too short and the machine spends its time switching instead of computing.
Context switching
- Para mudar qual processo está a correr, o OS guarda o estado do processo atual, os seus registos, contador de programa e status, no seu process control block 进程控制块, depois carrega o estado do próximo processo a partir do próprio bloco desse processo.
- Isso é um context switch 上下文切换. Tem um custo real: durante ele, o processador está a fazer manutenção, não o trabalho do utilizador.
- Por isso, a fatia de tempo é um compromisso. Muito longa e os programas interativos parecem lentos; muito curta e a máquina gasta o seu tempo a trocar em vez de calcular.
A context switch involves: · Uma troca de contexto envolve:
The OS saves the running process's registers/PC to its PCB and loads the next process's — a small overhead each switch. · O SO salva os registradores/PC do processo em execução em seu PCB e carrega os do próximo processo — uma pequena sobrecarga a cada troca.
During a context switch, a process's registers and program counter are saved into its ____. · Durante uma troca de contexto, os registradores e contador de programa de um processo são salvos em seu ____.
The next process's state is then loaded from its own block. The saving and loading is real work, which is what makes switching cost time. · O estado do próximo processo é então carregado de seu próprio bloco. O salvar e carregar é trabalho real, que é o que torna a troca custosa em tempo.
Interrupts and the kernel
- The kernel, the core of the OS, is what actually performs this: it responds to interrupts from devices and from programs, and an interrupt is what returns control to the OS from a running process.
- A timer interrupt at the end of a time slice is what makes pre-emptive scheduling possible at all; without it a program that never yields would keep the processor for ever.
- That is the answer to the opening puzzle: the frozen program holds no more of the processor than its slice, so the mouse keeps moving.
Interrupts e o kernel
- O kernel, o núcleo do SO, é o que realmente executa isto: responde a interrupts de dispositivos e de programas, e um interrupt é o que devolve o controlo ao SO a partir de um processo em execução.
- Um timer interrupt no fim de uma fatia de tempo é o que torna possível o agendamento preempativo; sem ele, um programa que nunca cede ficaria com o processador para sempre.
- Essa é a resposta ao puzzle inicial: o programa congelado não detém mais do processador do que a sua fatia, por isso o rato continua a mover-se.
Marks that slip away
- A process is a program in execution, not the file on disk.
- Blocked to ready, never blocked straight to running. The scheduler chooses when it runs again.
- A context switch saves and restores state through the process control block, and it costs time.
- Multi-tasking means processes take turns so quickly they appear simultaneous, not that they truly execute at once on one core.
Marcas que escapam
- Um processo é um programa em execução, não o ficheiro em disco.
- Bloqueado para pronto, nunca bloqueado diretamente em execução. O escalonador escolhe quando ele executará novamente.
- Uma troca de contexto salva e restaura o estado através do bloco de controle de processo, e isso custa tempo.
- Multitarefa significa que processos se alternam tão rapidamente que parecem simultâneos, não que realmente executam ao mesmo tempo em um único núcleo.
You've got it
- the OS maximises resource use by multi-tasking, paging, spooling to a disk queue and caching
- a process is a program in execution; the scheduler picks the next ready one, with round robin giving each a fixed time slice
- states new, ready, running, blocked, terminated: slice expiry sends running to ready, an I/O request sends it to blocked, and I/O completion sends it back to ready
- a context switch saves and restores state via the process control block and costs time, which is why the slice length is a trade-off
Entendeu?
- O SO maximiza o uso de recursos por meio de multitarefa, paginação, spooling em uma fila de disco e cacheamento
- Um processo é um programa em execução; o escalonador escolhe o próximo pronto, com round robin dando a cada um uma fatia de tempo fixa
- estados novo, pronto, em execução, bloqueado, terminado: expiração da fatia envia em execução para pronto, uma solicitação de E/S o envia para bloqueado, e a conclusão de E/S o devolve para pronto
- uma troca de contexto salva e restaura o estado via bloco de controle de processo e custa tempo, sendo por isso que o comprimento da fatia é um compromisso