### Theory of Computation | DFA - Deterministic Finite Automata

Automata are decision making machines, which decides whether a string belongs to a language or not.

An automaton is called deterministic, when it shows a unique path for change of state on every input.

Automata with definite number of states are called finite automata.

A Deterministic finite automaton(DFA) has both qualities,ie. it is deterministic and has finite number of states

A binary number is even if its LSB(Least Significant Bit) is zero (eg: 110 = 6 is even). If LSB is one, it is odd (eg: 111 = 7 is odd).

So if we are constructing an DFA which accepts all odd binary numbers,

our deterministic finite machine will have two states odd and even.

set of of all states Q = {O, E}

O - Odd

E - Even

Our machine requires inputs, the elemental binary numbers, i.e 0 or 1

These are called input alphabets Σ = {0, 1}

When you feed this a DFA with a inputs from MSB(Most Significant Bit) to LSB of a binary, when the zero comes as input the state has to be even when one the input the state will be odd.

Here the odd state is called finial state, where After giving LSB of the input to the machine, if the state is odd, concludes that the binary belong to language of set all odd binary numbers.

Final states are represented with F = { O }

Here the initial state is q0 = { E }.

And the state transition can be represent in terms of function δ : Q x Σ ➡ Q

DFA Deterministic Finite Automata(Q, \sigma, \delta, \q0, F):

The state transition function describes what should be the next state when a symbol input is given to a state.

So, a DFA has mainly the following parameters :

1. Set of all states(Q)
2. Input alphabets (Σ)
3. Set of all final states F
4. Initial state q0
5. State transition function δ : Q x Σ ➡ Q

### Operating Systems | Scheduling Algorithms : Round Robin

Round RobinFeatures : Most popular algorithm of allPractically implementableImplementable with basic data structures like queueExtremely lesser starvationOptimum efficiency can be set by controlling time quantumThe round robin algorithm will continuously switch between processes if a process in CPU (under execution) exceeds a time limit set by OS called time quantum.Flow Chart :Scheduler allocated process to for execution.CPU starts monitoring the execution time right after from allocation.If the process completes its execution before exceeding time quantum, OS forwards the process to termination state.else, the processes gets preempted once the time quantum limit exceeded and if the process finished at this moment, OS moves the process to termination state, else it moves to ready queue and iterates over the whole process listed above.Example : Consider the following table of processes and calculate completion time, turn around time and waiting time using Round Robin algorithm.Assumpt…

### Operating Systems | Scheduling Algorithms : SJF

Shortest Job First(SJF)SJF algorithm schedules the shortest job(low burst time) available on main memory at the time of context switching in ready state . It can be either preemptive or non-preemptive depending on the nature of scheduler.Since the SJF select the job which is shorted among available jobs on main memory, Non-preemptive SJF algorithm will have larger waiting time if a job with longer burst time get scheduled first. In short SJF is also vulnerable to Convoy EffectTo find shortest process among min-heap would be the best data structure to be usedExample : Consider the following table of processes and calculate completion time, turn around time and waiting time using SJF algorithm with the following assumptions. No preemption.No I/O request will be there from any process.Arrival time is relative to CPU on time.Process NumberATBT103222324442View Answer

The execution of processes can be visualized as follows : By analyzing above representation completion time, turn around ti…

### Operating Systems | Concept of Process

Hard disk drive of the system in called primary memory and secondary memory is Random Access Memory(RAM). Either a program written in High Level Language(HLL) or a executable code generated by the sequence of works done by pre-processor, compiler and assembler, resides in secondary memory of the system. To start an execution, operating system allocates some space in the main memory, for the program to be executed and loads the program in the secondary memory to the allocated space. The piece of work which is loaded by the operating system to the main memory in order to execute program is called processEvery program loaded by operating system will create a focus boundary(or process body), a partitioned memory area where all memory requirements for the execution of program is satisfied.Variable which will not change its value through out life time of process is called static variable and variables which are globally accessible in a process known as global variable.Heap area is reserved f…