What is an Embedded system?

An Embedded system is any computer system hidden inside a product other than a computer.
 You will encounter a number of difficulties when you writer embedded-system software in addition to those you encounter when you write applications.

Throughput— Your system may need to handle a lot of data in a short period of time.
Response— Your system may to react to events quickly.
Testability— Setting up equipment to teat embedded software can be difficult.
Debug ability— Without a screen or a keyboard, finding out what the software is doing wrong is a trouble some problem.
Reliability—Embedded systems must be able to handle any situation without human intervention.
Memory Space—Memory is limited on embedded systems, and you must make the software and the data fit into whatever memory exists.
Program installation—You will need special tools to get your software into embedded systems.
Power Consumption—Portable systems must run on battery power, and the software in these systems must conserve power.
Processor Hogs—Computing that requires larger amounts of CPU time can complicate the response problem.
Cost—Reducing the cost of the hardware is a concern in many embedded system projects; software often operates on hardware that is barely adequate for the job.
Embedded systems have a microprocessor and a memory. Some have a serial port or network connection. They usually do not have keyboards, screens, or disk drives.