# data[].attributes.body
Name : Muhammad Nur Arif Bin Mohd Azman
ID : 2021619936
Group : CS2303C

# data[].attributes.body
Operating System

A computer program that acts as an intermediary between a user of a computer and the computer hardware.

Computer System Structure

Users                        - People, machines, other computer

Application                - Software, web browsers

Operating System     - control and coordinates use of hardware

Hardware                  - CPU, memory, I/O devices

User view

Single user computers - ease of use, good performance.

Multi user computers - maximize resource utilization.

Handheld computers - optimized for usability and battery life.

Embedded computers - run without user intervention.

System View

Resource allocator

manages all resources.

Decides between conflicting requests for efficient and fair resource use.

Control program

Control execution of programs to prevent errors and improper use of the computer

# data[].attributes.body
Function of OS :-
1) User interface (UI) (Command-Line (CLI), Graphics User Interface (GUI),  touch-screen)
2) Program execution
3) I/O operations
4) File-system manipulation
5) Communications
6) Error detection

Another set of OS functions for ensuring the efficient operation via resource sharing :-
1) Resource allocation
2) Logging
3) Protection and security

System Calls:-
- Services provided by the OS
- Written in high-level language (C or C++)
- Access by API

Types of System Calls
- Process control
- File management
- Device management
- Information maintanance
- Communications
- Protection

System Services :-
1) File manipulation
2) Status information sometimes stored in a file
3) Programming language support
4) Program loading and execution
5) Communications
6) Background services
7) Application programs

# data[].attributes.body
Process Concept : -
- process execution must progress in sequential fashion multiple parts such as text section, program counter, stack, data section and heap (memory location).

1) Process State :
- Start with new (the process is being created) --> ready (wait for CPU to be assign) --> running (instructions are being executed) --> waiting (the process is waiting for some event to occur) --> termination (completion of the process).
2) Process Control Block (PCB) :