Journal03 - maxinepopov/sys-140 GitHub Wiki

Memory Management modules keep track of memory locations and make them available to new process. Fixed partitioning is when physical memory is split apart, while a process may get assigned. Variable partitioning allows the partition size to be changed and solves issues such as internal fragmentation found in fixed partitioning.

Virtual memory implies that it has working memory and address space towards an application program. Virtual memory allows programming of bigger applications easier.

Paging allows the separation of physical memory into equal size page frames. The program is also separated in equal sized pages. The pages get loaded into the memory and page table gets used to translate the user pages to memory frames. Only a partial bit of the program gets loaded into memory if the program requires more memory.

Relocation is when the programs do not get loaded into a fixed point. However, they can reside in different areas. Protection is when the processes need to get protected against interference by another process. Sharing is when the protection needs to be flexible to allow different numbers of processes to gain access to same areas of memory. Programs being organized into sequenced modules is contiguous organization. Non-contiguous Organization is when the memory gets organized into different locations that will vary based on need or available space in the computer.

A popular way to have memory protection is memory segmentation. Segmentation includes a memory location that holds a value and identifies segments and offset with that segment.

The CPU has a process in which there can be a program in execution. Processes need certain things such as CPU times, memory, files, I/O, etc. A process is considered the unit of work. Operating System process can include executing system code, user processes, and they execute the user code.

The operation system can create and delete user and system processes, suspend resumption of processes, provision of mechanisms for synchronization, and provision of mechanism for deadlock handling.

Concept of process can be instances of programs in execution, asynchronous activity, animated spirit of a procedure, locus of control of procedure, dispatchable unit, unit of work schedulable by operation system.

Operating system can be considering working as a computer system software that is assisting hardware in process functions. A single processor can be shared to other several processes.

In most systems, there is a way that’s needed to create and/or destroy processes during operations.

Process states include executing (has control of CPU), waiting (waiting until CPU becomes available), and blocked (waiting for input or output to be sent)., suspended (process can run, though the OS didn’t place the process on ready queue), and ready (process is in memory, it will execute).

Process table or process control block or switch frame is needed in order to implement process models. Each of them identifies a process’s information such as its state, counter, stack pointer, memory allocation, status of open files, accounting, and scheduling info.

Threads are the scheduled sections of a program. Tasks are multithreaded if composed of several independent sub-processes. Threads allow the splitting of a program into separate pieces, having the pieces run independently, until they are ready to communicate.

If we use threads, it is possible to organize executions of programs based on schedules. We can switch between lightweight processers, being able to write more efficient programs, threads are scheduled on FCFS basis if process is heavy weight, the thread context can switch without involving the kernel, which saves time.

Scheduling is a very important operating system function which all computer resources use before use. The scheduling of the CPU is central to operating system design. Scheduling increases CPU utilization and higher throughput which is the amount of work accomplish within an interval. Scheduling improves system performance such as also allowing maximization of throughput, being predictable, minimizing overhead, balancing the resource use, achieving a balance between a response and utilization, avoiding infinite postponement, enforcing priorities, giving preference to processes holding key resources, degrading under heavy loads (gracefully).

Memory Overview

Software must be in computer memory. There are two types of main memory which is random-access memory (RAM) and read-only memory (ROM). RAM is split into dynamic RAM (DRAM) and static RAM (SRAM). DRAM less expensive but slower. Info stored in 1s and 0s is rewritten to memory chip through a refresh process, which is accomplished inside the DRAM. Most of the memory on the mother board is DRAM, while a smaller amount of SRAM is found inside the processor for the most part. SRAM can be seen as cache memory as well. Data that the processor needs is found in either cache, DRAM, or hard drive. Cache is the fastest. If the information is not located in the cache, then the processer migrates to looking for the information in the DRAM. If not in the DRAM, the information is received from the hard drive.

Some memory modules available today include, SDRAM, DDR, DDR2, DDR3, DDR3L, DDR4, and DDR4L. The chipset performs most of the functions within the processor. Chipsets have the availability to control the local bus, memory, DMA, interrupts, and cache memory.

Memory chip features include parity, non-parity, error connecting code, unbuffered memory, buffered memory, serial presence detect, single-sided memory, double-sided memory, dual-voltage memory, and extreme memory profile.

Windows Disk Caching includes virtual memory which is a way of using hard drive spaces similarly to RAM. It can also run larger applications and multiple applications running at once. Swap files are blocks of hard-drive space that applications like to use compared to RAM. Other names swap files tend to use are page file and paging file. If you need optimum performance in Windows, there must be free hard drive space being set aside to allow room for virtual memory and caching.

Performance utility in windows operating systems is in task manager which monitors memory usage. Total physical memory is the amount of RAM that is installed. Cached physical memory are the memory pages that can be written to disk. Available physical memory is the amount of memory for application use. Free physical memory is the amount of available physical RAM. Paged kernel memory can be used by applications that can be copied to the paging file. Nonpaged kernel memory is available only to operating system. Handles are the number of resources the operating system deals with.

Both windows 8 and 10 contain redesigned task managers.

Flash memory is solid memory that always holds data. PCs, network devices, smartphones, and tablets use flash memory. Flash memory does not need to be refreshed compared to DRAM, and it does not need power at all times compared to SRAM. USB flash drives allow up to 256GB. There are various models available. Flash drives include good security, high quality memory storage solutions, and they are inexpensive.

Questions:

• Have you ever had issues with a program using excessive amounts of memory or disk space and slowing down your computer? If so, how did you identify and solve the problem? Yes, sometimes I run heavy games on my MacBook or forget to completely close them and it gets quite laggy. I identified this by clicking on the memory tab on my activity monitor and I saw the heavy applications taking up the most memory in use. To fix this, I minimize the number of applications I use at once, and I try to clear more disk space in order to properly run the programs. • Talk about your experience with using flash memory (for example, USB flash drives) in the past. Do you think making hard drives out of flash memory rather than spinning disks would be a good decision? (We'll be discussing drives like this in more detail in a couple of weeks!) I’ve used a lot of USBs in the past for school purposes. They helped me transfer files from computer to computer and gave me more storage. Using hard drives is better than spinning disks due to flash drives such as USB being so easy to obtain, and there are very cheap options of USBs. Spinning hard drives tend to be more expensive, and flash memory is easily obtainable and always contains the data in a solid state allowing us to easily transfer data between devices.

(journal is written in order of the objectives in week 3 readings)