Segmentation in Operating System
The term segmentation in operating system refers to the division of computer memory into segments. Segmentation is a technique used by many modern operating systems to provide better memory management. In this article, we will explore the concept of segmentation in operating systems. We will discuss the advantages and disadvantages of segmentation, and we will also provide some examples of how segmentation is used in modern operating systems.
What is Segmentation?
Another method for managing memory that gives the user a view of a process is segmentation. The user’s view gets mapped in the physical memory.
A process is broken up into multiple segments in segmentation. In contrast to paging, each segment may not necessarily be the same size. A process was broken up into equal parts, or pages, in Paging. The size of a segment is determined by the module it contains.
Why is Segmentation Necessary?
It is important to segment a system because each process or user requires a certain amount of resources, which may be limited. For example, if one process hogs the CPU, other processes may starve and not get the resources they need. By segmenting the system, processes can be isolated so that one process cannot interfere with the others.
One of our memory management strategies was paging. Paging divides the process into equal-sized pages, regardless of what was contained within the pages. It likewise separates a few relative pieces of a cycle into various pages which ought to be stacked in total agreement. It doesn't give the user a view of a process and makes the system less efficient.
Types of Segmentation
1. Simple Segmentation
Simple Segmentation also divides the processes into n segments, even though the segmentation is completed simultaneously. Simple segmentation takes place during the execution of a program. Simple segmentation that scatters the segments into the memory (in a noncontinuous manner) may cause one process segment to be located in a different location than another.
2. Virtual Memory Segmentation
By using virtual memory segmentation, processes are broken up into n segments. These segments are not divided simultaneously. Virtual memory segmentation may or may not be used during a program's runtime.
Characteristics of Segmentation
The segmentation method has the following characteristics:
- In the segmentation technique, variable-size partitioning is utilized.
- Secondary memory partitions are collectively referred to as segments.
- Partition size is significantly influenced by module length.
- As a result, the main memory and the secondary memory are divided into partitions of varying sizes using this approach.
What is Segment Table in OS & its Uses?
The main memory's actual address differs from the CPU's. Logical addresses are those produced by the CPU, whereas physical addresses are created by main memory.
In a segment table, the data for each part of the process is stored. It is common knowledge that a segment table is used to convert a CPU-generated logical address into a physical address. A two-dimensional logical address is mapped to a one-dimensional physical address using the segment table.
Components of Segment table
There are two sections of to the segment table:
1. Segment Base
The address of a segment's base is also known as the segment base. The physical addresses at which the memory segments begin are contained in the segment base.
2. Segment Limit
- Segment Offset is a different name for the segment limit. It contains the precise length of the segment.
- STBR stands for Segment Table Base Register. The STBR stores the base address of the segment table.
- STLR (Segment Table Length Register) keeps track of how many segments a program uses. As a separate segment, the segment table itself is kept in the main memory. The segment table may occasionally consume a lot of memory if there are many segments.
Advantages of Segmentation
Segmentation has the following advantages in an Operating System:
- Internal fragmentation is absent from segmentation.
- A segment table stores the segments' records. When compared to a page table for paging, the segment table consumes less memory by itself.
- Segmentation increases the CPU utilization because an entire module is loaded at once.
- The user's view of physical memory is basically the same as Segmentation. Segmentation allows users to divide user programs into modules. The codes of individual processes make up these modules.
- In paging, the page size is determined by the hardware, whereas the user specifies the size of the segment.
Disadvantages of Segmentation
Following are the disadvantages of segmentation in OS:
- Segmentation techniques have serious problems because the free space becomes fragmented when processes switch.
- Fetching instructions or segments takes a long time.
- Interchanging different size segments is difficult.
- The cost of maintaining the segment table for each process is another expense.
- A process is removed from the main memory as soon as it terminates.