Explique o que é, para que serve e o que contém um tcb - task control block.

Permalink

Cannot retrieve contributors at this time

Exercicios Capitulo 2

Aluno: Emerson Breno Martins Carvalho

  1. Explique o que é, para que serve e o que contém um PCB - Process Control Block.

    R: É um elemento descritor de processos pertencente ao núcleo do sistema operacional, utilizado para armazenar as informações referentes aos processos ativos no sistema.

  2. O que significa time sharing e qual a sua importância em um sistema operacional?

    R: O conceito de time sharing(compartilhamento de tempo) foi criado para que cada atividade que detenha o 'controle' do processador receba um limite de tempo de processamento, conhecido como quantum. Através deste controle qualquer atividade que ultrapasse o tempo limite irá perder o processamento e irá voltar para a fila de tarefas que estão aguardando para serem executadas. Portanto, esse conceito é muito importante para manter o sistema operacional em funcionamento.

  3. Como e com base em que critérios é escolhida a duração de um quantum de processamento?

    R: A duração do quantum é definida com base no sistema operacional e de acordo com o tipo e prioridade da tarefa.

  4. Indique se cada uma das transições de estado de tarefas a seguir definidas é possível ou não. Se a transição for possível, dê um exemplo de situação na qual ela ocorre (N: Nova, P: pronta, E: executando, S: suspensa, T: terminada).

    • E → P Possível

    • E → S Possível

    • S → E Não Possível

    • P → N Não Possível

    • S → T Não Possível

    • E → T Possível

    • N → S Não Possível

    • P → S Não Possível

  5. Relacione as afirmações abaixo aos respectivos estados no ciclo de vida das tarefas (N: Nova, P: Pronta, E: Executando, S: Suspensa, T: Terminada):

    [N] O código da tarefa está sendo carregado.

    [P] A tarefas são ordenadas por prioridades.

    [N] A tarefa sai deste estado ao solicitar uma operação de entrada/saída.

    [T] Os recursos usados pela tarefa são devolvidos ao sistema.

    [S] A tarefa vai a este estado ao terminar seu quantum.

    [P] A tarefa só precisa do processador para poder executar.

    [S] O acesso a um semáforo em uso pode levar a tarefa a este estado.

    [E] A tarefa pode criar novas tarefas.

    [E] Há uma tarefa neste estado para cada processador do sistema.

    [S] A tarefa aguarda a ocorrência de um evento externo.

  6. Indique quantas letras “X” serão impressas na tela pelo programa abaixo quando for executado com a seguinte linha de comando:

    a.out 4 3 2 1

    R: XXXXX

  7. O que são threads e para que servem?

    R: Threads é basicamente um fluxo de execução de tarefas que operam dentro de um mesmo processo, ou seja, tarefas que são executadas dentro de um mesmo contexto. Por exemplo, um aplicativo 'x' de edição de fotos terá várias tarefas sendo executadas simultaneamente no mesmo contexto.

  8. Quais as principais vantagens e desvantagens de threads em relação a processos?

    R: Uma das vantagens que pode ser citada diz respeito ao ganho de desempenho do sistema. Já uma desvantagem é o aumento da complexidade de implementaçaõ.

  9. Forneça dois exemplos de problemas cuja implementação multi-thread não tem desempenho melhor que a respectiva implementação sequencial.

  10. Associe as afirmações a seguir aos seguintes modelos de threads: a) many-to-one (N:1); b) one-to-one (1:1); c) many-to-many (N:M):

    [A] Tem a implementação mais simples, leve e eficiente.

    [B] Multiplexa os threads de usuário em um pool de threads de núcleo.

    [B] Pode impor uma carga muito pesada ao núcleo.

    [A] Não permite explorar a presença de várias CPUs pelo mesmo processo.

    [C] Permite uma maior concorrência sem impor muita carga ao núcleo.

    [B] Geralmente implementado por bibliotecas.

    [A] É o modelo implementado no Windows NT e seus sucessores.

    [C] Se um thread bloquear, todos os demais têm de esperar por ele.

    [C] Cada thread no nível do usuário tem sua correspondente dentro do núcleo.

    [C] É o modelo com implementação mais complexa.

The Task Control Block (TCB) contains the state of a task[a] in, e.g., OS/360 and successors on IBM System/360 architecture and successors.

The TCB in OS/360 and successors[edit]

In OS/360, OS/VS1, SVS, MVS/370, MVS/XA, MVS/ESA, OS/390 and z/OS, the TCB[1][2][3]: 311–321 contains, among other data, non-dispatchability flags and the general and floating point registers for a task that is not currently assigned to a CPU.

A TCB provides an anchor for a linked list of other, related request blocks[3]: 269–301 (RBs); the top-linked RB for a TCB contains the Program status word (PSW) when the task is not assigned to a CPU.

When the control program's dispatcher selects a TCB to be dispatched, the dispatcher loads registers from the TCB and loads the PSW from the top RB of the TCB, thereby dispatching the unit of work.

Request Blocks[edit]

OS/360 has the following types of request blockss

Interruption Request Block[3]: 281–284 An IRB is used to handle an asynchronous exit.[b]Program Request Block[3]: 285–287 A PRB represents a module invoked with an ATTACH macro, a LINK macro or a synchronous exit.[c]System Interruption Request Block[3]: 289–291 An SIRB is used to run I/O error recovery code.Supervisor Request Blocks[3]: 293–301 An SVRB represents the execution of a Type 2, Type 3 or Type 4 SVC routine

An RB contains several fields, among the na old PSW, old general registers, a PSW and a wait count.

Dispatching[edit]

The Dispatcher is a routine in the nucleus that selects the work to be dispatched. It selects the highest priority task that:

  1. Is not running on another CPU
  2. Does not have any non-dispatchability flags set
  3. Has a top RB with a zero wait count.

The system maintains a pair[d] of TCB pointers known as TCB old and TCB new. A TCB new pointer of zero causes the dispatcher to search for an eligible task.

When the dispatcher finds an eligible task, it sets the old and new TCB pointers. loads the registers from the TCB and loads the PSW from the top RB.

If the dispatcher fails to find eligible work, it enters an enabled wait.

History[edit]

With the introduction of MVS/370 and successor systems, a whole new environment was introduced: the Service Request Block (SRB), which generally has a higher priority than any Task Control Block, and, indeed, which itself has two distinct priorities: a Global SRB (priority over all local address space SRBs and TCBs) and a Local SRB (priority over only the local address space TCBs); and MVS's dispatcher must manage all of these with absolute consistency across as many as two processors (MVS/370) and as many as sixteen processors (successor systems).

See also[edit]

  • Process control block

Notes[edit]

  1. ^ Roughly analogous to a thread in UNIX-like operating systems.
  2. ^ An asynchronous routine to handle an exception, timer event or other signal.
  3. ^ Unprivileged callback routine.
  4. ^ In 65MP there is a pair for eack CPU; in MVS there are pointers for each address space.

References[edit]

  1. ^ IBM System/360 Operating System - Fixed-Task Supervisor - Program Number 360S-CI-505 (PDF). Program Logic (Third ed.). February 1967. Y28-6612-2.
  2. ^ IBM System/360 Operating System - MVT Supervisor (PDF). Program Logic (Eighth ed.). May 1973. GY28-6659-7. Retrieved March 14, 2022.
  3. ^ a b c d e f IBM System/360 Operating System: System Control Blocks - OS Release 21.7 (PDF). Systems Reference Library (Tenth ed.). IBM. April 1973. GC28-6628-9. Retrieved June 12, 2022.