Skip to main content

A Brief Overview of Computers

In this section of the notes, we will note some of the most important hardware components within our computer. Knowing this will help us understand how the software we write (our programs) work with the physical devices we use.

The following is an description for a computer on sale. Many of you have probably seen descriptions like this when shopping for a computer. We will now look at this ad and explain the major components and how programs interact with those components.: Computer Ad: Intel Core i7, 3.4Ghz, windows 11

warning

The descriptions on this page contains broad generalizations that may not hold true in all cases. It is simply here to provide a mental model for you to understand how programs you write will interact with the computer you are working on.

The CPU

14th Gen Intel Core i7-14700K processor(20 cores, 28 threads, 3.4Ghz to 5.5Ghz)

This description is about the Central Processing Unit, or CPU, on this computer. When we write programs we are creating instructions for the computer. The CPU's job is to execute the instructions we provide. In modern computers, processors are often multi-cored. This effectively means that there are multiple processors to divide up the task of executing instructions allowing multiple instructions to be handled simultaneously. The part about 3.4 Ghz to 5.5 Ghz refers to a clock speed. To synchronize the instructions, computers time the execution of instructions to a clock. With each "tick" of the clock, a part of an instruction gets executed. The higher the clock speed, the more "ticks" there are per second and the more instructions can be executed each second.

The Operating System:

Windows 11 Home, English, French, Spanish is the operating system that is shipped with this computer. (NOTE: If you are buying a new windows computer, its STRONGLY recommended that you get the Windows 11 Pro edition, not the home edition as it won't have the features and settings you may need as a developer). Operating systems coordinate all the processes running on the computer. It allocates resources for various users and processes running on the computer. For example, If you turn on your computer and do absolutely nothing other than log-in, your computer is still running many different processes... for example, the clock that tracks the current time, the program that tracks where your mouse pointer is pointing is a process. etc. The operating system manages all of these processes that must share the hardware.

In your OPS102 class you will learn about Windows and Linux from a programmer's perspective. For those of you with a Mac.. just remember that underneath MacOS is Unix. Linux is a form of Unix. Thus, on a Mac if you bring up a terminal, you can run the same commands as the ones you learn for Linux in your OPS102 class.

Graphics Processor/Video card

Nvidea GeForce RTX 4060 Ti, 8GB GDDR6 Video cards are specialized hardware to help produce graphics quickly. Video cards have many processors running in paralell to help determine what should be drawn to each pixel. While this is a piece of hardware that is useful, it isn't something we will consider during this course. In your upper semesters you may end up taking game development related courses or parallel processing. This hardware will be more important to consider at that time.

Storage

The next two lines of the description relate to storage available on the computer

Programs and the data used by those programs must be stored on your computer. Generally there are two categories of places to store your data. The difference between them is one is considered to be volatile (something that last only for as long as your computer is powered on) and one that is permanent (something that stays around even when your computer is turned off). While the lines between these two categories have blurred in recent years, it is still a good idea to understand what each one stores. We will be writing programs that use both of these.

Again, these are broad generalizations..there is actually more categories storage beyond just main memory and persistent storage. The general rule is that the faster the memory is to access, the less there is of it and the more expensive it is.

For the purposes of this course, it is good enough to simply separate storage into two broad categories of Main Memory and Persistent Storage.

Main Memory

32 GB DDR5 1X32GB, 5600 MT/s is a description of memory or RAM which is an acronym for Random Access Memory. This type of memory is considered to be volatile. In other words when you turn off your computer, anything stored in your RAM will be lost. Things stored in RAM tend to be in active use. In order to run your program, your program must be loaded into memory. The data that your program uses is also stored in memory. When your program is completed, the memory used by your program is released so that other programs can make use the of the same memory.

Persistent Storage

1 TB, M.2, PCle NVMe, SSD (boot) + 2 TB, 7200 RPM, SATA, HDD (storage) is a description of persistent storage. Things stored on in persistent storage remain even after you turn off your computer. The amount of storage available is significantly higher than memory. This type of storage is slower and less expensive per unit of storage compared to memory.

The Cloud

One of the major recent changes in computing is the use of cloud computing resources. This is essentially using computers that are not in front of you.. they are out on the internet. You can interact with it like it is your own computer.. but it these computers are not physically in front of you.

When we use these resources, one of the key features is that it isn't permanent... we could spin up a cloud computing resource, use it for our purpose then when we are done, simply let it go. In this course you will have the option of writing your programs either on your computer or to use a cloud resource.