Saturday, July 18, 2020

Thread in Operating System | Thread VS Process

What is Thread in Operating System?


First of all you should know that a thread is also known as lightweight process.

It is a sequence of instruction within a process. A thread itself behave like a processes in a process.

It behave like a process within the process, but it don’t have a complete PCB it relays on the PCB of the process under which it is behaving like a process.

A process can have multiple threads, all those multiple threads in the process help the process to perform multiple executions which improves the working.

There must be at least one thread in a process.

A thread pass through three states:
  1. Running
  2. Ready
  3. Blocked 

Benefits of Threads:

It share common data and do not use the Inter process communication.

Speed improvement when multiple threads cooperate to complete a single job.

Context switching becomes fast when working with threads.

Threads use very little recourses of OS as they don’t demand complete separate PCB.

It share common data and do not use the Inter process communication.

Speed improvement when multiple threads cooperate to complete a single job.

Context switching becomes fast when working with threads.

Threads use very little recourses of OS as they don’t demand complete separate PCB.





Temperature converter using c\c++

Friday, July 17, 2020

C++ Program to Copy string

Saturday, July 11, 2020

State diagram in Software Engineering | State Machine Diagram

State Diagram in Software Engineering | State Machine Diagram 
software engineering,softwareengineering,mysoftwarenotes.com,mysoftwarenotes,state machine diagram,state machine tutorial,state machine unity,UML state,uml state diagram,uml state chart diagram,uml state transition diagram,UML Diagram,UML,uml diagrams tutorial,state diagram examples,state chart diagram examples,how to draw state diagram,state diagram in software engineering,state diagram symbols,state machine,state chart diagram,state transition table

State Diagram is one of the UML Diagram which use to show the dynamic behavior of the system.
We use the state diagram only when any object of the system changes its states in the life. This diagram helps us in representing how an object goes through from one state to other and what are the factors which make the object to transit from one state to other, When object move from one state to other if we have options to go in different states so what state an object chose to move forward and where the chosen state take the object.

there is no Rocket science involve in the state diagram, you being an object of the person class have a unique name lets say "John" and you in your whole life make keep transiting through different states up different factors.

The factor of feeling sleepy transit you to the sleeping state, the factor of  being hungry transit you to the eating state, the factor or the environment which you hate transit you to the Angry state.

This UML Diagram only represent your transitions from one state to another in a flow.
Being a human if you start to make your life state diagram I don't think you can predict all the states through which you will pass in future. Because it depends on the environmental factors and lots of other external factors but the GOD knows your state diagram very well isn't it?

same like this when you develop a software, It could be the bundle of classes, and there would be lots of objects of different classes, Now the object of the class do not know the states from which or to which it will transit in the whole life, But the creator of the object in this case that's you being a programmer or Software Engineer knows very well the states from which an object going to pass in different situation so according to your knowledge you make this state diagram.

Now The objects in the software are not like Humans they some times change the states but most often they are assign to a task (specific task) and by remaining in a single state the keep performing those tasks and dies at the end just after completing the assigned task this is the case in most of the objects in software you don't have to draw state diagram for these kind of software just think if the software is not changing the state in the whole life what is the purpose of making state diagram.

If there are some objects who are assigned to some task but change the state on factors then you have to make a state diagram for it. 
I have given the examples of objects changing the states, may be the example of Easypaisa in the video will be beneficial to understand what I have describe in the whole article till now.

I will recommend you to watch the video now it will help you to clear the concepts.


Sunday, July 05, 2020

IPC model | Shared memory model | Message passing model in OS

Inter-Process Communication | Shared Memory Model | Message Passing Model in Operating System

Software Engineering,mysoftwarenotes.com,mysoftwarenotes,software developer,software,operating system tutorial,operating system course,ipc in operating system,ipc in operating system in hindi,shared memory model in os,message passing model in,message passing model in os,message passing model in operating system,message passing model in distributed system,symmetric communication in os,asymmetric communication is os,os in hindi easy engineering classes


•IPC – (Inter-Process Communication) is the capability which allow two process of the computer to communicate with each other.

•Where will be those process?
•Its not important for process to be in the same computer they can be in same computer or in different computer which are connected over the network.

•There are two fundamental model of Inter Process Communication.
•1) Shared Memory Model
•2) Message Passing Model

Shared Memory Model
•This model made a region of memory which get shared between the cooperating processes.

•The process who want to share information read and write the data from this location.

•This is the fast model as compare to the Message passing model.

Where this shared memory is located?

You may find this shared memory under the address space of the process which want to share data with other processes.

•Yup, That’s true that OS usually prevent the process to inter in the memory of other process but in this scenario, we bypass this prevention.
•OR the process itself allow the OS to remove this protection from its memory for the cooperating processes.

Message Passing Model
In this model two process communicate with each other by passing messages.

•It is easy to implement as compare to shared memory model.

•It is useful to exchange small amount of data.

•This system is much more useful in the distributed environment when the two computers are on the same network and their processes want to share the data.

Message Passing Model Operations:

Message passing model provide two operations
1.Send(Message)
2.Receive(Message)

In sending message and receiving message, there are two more concepts.
1.Direct Communication
    1.1.Symmetric Communication
    1.2.Asymmetric Communication
2.Indirect Communication

Direct Communication:
In direct communication sender and receiver mention the name of the process from which they want to receive messages or to whom they want to send messages.

In Symmetric communication both sender and receiver mention the name of each other.

in Asymmetric Communication Only sender mention the name of the receiver, receive the message from the ID.

Indirect Communication:
•In this system messages are sent and receive from the mailbox.

•Mailbox is a place where two or more process store and remove messages.

•Processes communicate sharing one mailbox.

Thursday, July 02, 2020

Software Project Management in Software Engineering

software engineering,mysoftwarenotes.com,mysoftwarenotes,software developer,software,software project management,software projects,software project management tutorial,software project management tools,software manager interview questions and answers,software manager skills,software manager interview,software manager,it project management,it project manager interview questions and answers,it project manager day in the life,cs615


What is a project?

•A project is a group of tasks that we perform to achieve the required result. Not only in the software domain project in every domain is a group of tasks.

•Every project no matter if it is in the field of software or some else have some starting and ending time linked with it.

•Every project need some resources, in the term of time, in term of manpower, finance and knowledge-bank.

•Collectively all these resources help us to complete a project.

What is Project Management

•Project management is a way to lead the team and use all the resources in a manage way to achieve the required results which we want at the end of the project.

•The focus of the project management is to achieve all of the project goals under the given constraints.

•Goals are the tasks which collectively makes a project and manpower is working on it.

•Constraints are given time frame, budget, requirements and all these things.

What is Software Project?

•A software project is complete procedure of software development from the requirement gathering to final stage of developing a software and maintain It.

•It is also important to keep the software project under the define constraints. 

•It is the duty of Software Project Management to keep this under constraints. Software Project management keep the software project under the all define constraints.

What is Software Project Management?

•Software Project management is a well-disciplined field and an art using which we plan, manage and supervise the software project.

•Software Project management is a complete procedure which helps in managing the software project in sense of time, budget and all other constraints.

•Software Project Management field mainly deal with three things
1.Time
2.Cost
3.Quality

Project Manager

•Software Project management is a complete domain and the Project manager is the person responsible to keep the whole project under the domain according to the constraints.

•He is the person who keep the project on track and manage it. 

•Project manager is the driver of the software project management.

Responsibilities of Project Manager

•Project Planning
•Scope Management
•Project Estimation
    Software Size
    Effort
    Time
    Cost estimation
•Resources Management
•Risk Management

•He is the fully responsible to keep the project on track.
1.He monitor the flow of team activities, Their planning and put them in a sequence and under the constraints of the project. 

2.Project Manager also make important changes if needed some where in between the project according to the situations and take some bold decisions.