As we already mentioned in one of our article about Progressive Web Apps, there are other operating system concepts a software developer should learn. While the extent and depth of knowledge can be questioned, knowing more than the fundamentals can be critical to how well your program runs and even its structure and flow. So, we are presenting 10 critical operating system concepts a software developer should learn.
An Operating System (OS) is a collection of software that manages computer hardware and provides services for programs.
There are 2 operating system design principles, which are: (1) Separation of mechanism and policy by implementing flexible mechanisms to support policies, and (2) Optimize for the common case: Where will the OS be used? What will the user want to execute on that machine? What are the workload requirements?
1.Processes and Process Management.
When a program is loaded into the memory and it becomes a process, it can be divided into four sections ─ stack, heap, text and data.
2. Threads and Concurrency.
A thread is a flow of execution through the process code, with its own program counter that keeps track of which instruction to execute next, system registers which hold its current working variables, and a stack which contains the execution history.
The process scheduling is the activity of the process manager that handles the removal of the running process from the CPU and the selection of another process on the basis of a particular strategy.
4. Memory Management
Memory management is the functionality of an operating system which handles or manages primary memory and moves processes back and forth between main memory and disk during execution.
5. Inter-Process Communication
A process can be of 2 types: Independent process and Co-operating process.
One of the important jobs of an Operating System is to manage various I/O devices including mouse, keyboards, touch pad, disk drives, display adapters, USB devices, Bit-mapped screen, LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers etc.
Virtualization is technology that allows you to create multiple simulated environments or dedicated resources from a single, physical hardware system.
8. Distributed File Systems
A distributed file system is a client/server-based application that allows clients to access and process data stored on the server as if it were on their own computer.
9.Distributed Shared Memory
Distributed Shared Memory (DSM) is a resource management component of a distributed operating system that implements the shared memory model in distributed systems, which have no physically shared memory.
10. Cloud Computing
Using cloud computing, users are able to access software and applications from wherever they need, while it is being hosted by an outside party — in “the cloud.”
An understanding of how the operating system works will provide valuable insight into how the other disciplines work, as your interaction with those disciplines is managed by the operating system. To read more about operating systems you can here.