운영체제에 대해 학습하고 있다
어떻게 아다리가 딱딱 맞아 떨어져서
노트북을 구매하기 위해 최신 운영체제 정보부터 시작하며
컴퓨터 성능에 대해 밤낮으로 탐구하고 있었는데
학습기간이 딱 맞아 떨어졌다

그래서 진짜..거짓없이 최신 운영체제의 정보는
진짜 용산에서 판매하시는 분들과 견줄 수 있을만큼
견고하다고 자부할 수 있다..
(이게 돈이 걸리니까 아 강제로 밤낮으로 노트북탐구를 진짜 미친듯이 하다보니까 미쳐버릴ㄹ거같음 하)
진짜 노트북 드럽게 비싸다
조금만 원하는 사양 넣어두면 +100만원은 기본이다 ^^
여튼 이제 조만간 원하는 노트북은 구매를 할 것 같다 물론 내 피같은 돈을 빼가면서 ^^
당분간 점심을 굶게생겼다.. 하


📌 운영체제란?

일단 운영체제부터 짚고 넘어가자
쉽게 설명하자면 운영체제란 컴퓨터라는 기계 안에
우리가 어떤 작업(게임, 문서 인터넷서핑 등)을 실행하기 위해
기본적으로 그 작업들을 할 수 있게 도와주는 역할을 하고 있는 것을 운영체제라고 말한다
어딘가에 말할 수 있게끔 정리를 해보자면

CPU, 메모리, 하드디스크 등 컴퓨터의 물리적 자원을 효율적으로 관리할 수 있고
사용자와 컴퓨터간의 상호작용을 도와주는 환경을 제공해주는 것을 운영체제라고 할 수 있다


📌 컴퓨터 하드웨어 구조

사실 요즘 하드웨어의 정보는 진짜 빠삭하다 ^^ 그놈의 노트북 때문에 진짜 하
기본적으로 나눠보자면 CPU, 메모리(RAM), 저장장치(hdd/ssd), 메인보드, 전원공급장치(psu)
정도로 볼 수 있다 (그래픽카드는 넣지 않았다 = 할말이 너무 많아짐)

CPU
제어장치와 연산장치로 구성되어 있으며 컴퓨터의 뇌라고 보면된다
이게 좋으면 좋을 수록 연산이 잘되니 당연히 다양한 작업시 막힘없이 진행할 수 있다
중요한 내용만 간략하게 간추리고 넘어가자

CPU는 코어와 스레드로 이루어져 있는데

코어(Core): 실제 작업을 처리하는 CPU의 핵심 연산부품이고

스레드(Thread): 하나의 코어가 동시에 처리할 수 있는 작업 단위이다
(요즘은 CPU도 좋아져서 1코어당 2개의 스레드를 처리할 수 있다고 생각하면 된다)

클럭속도(Clock Speed): CPU의 처리 속도를 나타내며 GHz 단위로 표시된다
(예를 들어 3.5GHz는 1초에 35억 번의 연산이 가능하다는 의미)

메모리(RAM)
임시 저장공간으로 작동하는 시스템이며 메모리가 높으면 높을수록
우리가 다양한 작업들을 소화할 수 있게 도와준다
램은 듀얼채널로도 구성이 가능한데 = 2개꼽을 수 있음
(이건 좀 심화과정의 하드웨어 기술이니 그냥 알아만두자 많으니까 더 많이 작업을 할 수 있다 정도?)

저장장치(hdd/ssd)
메모리와는 다르게 임시 저장공간이 아닌 컴퓨터 안에 영구적으로 저장할 수 있는 장치를 뜻한다
당연히 hdd와 ssd의 용량이 높으면 높을수록 저장할 수 있는 용량이 많다!
(요즘엔 hdd보다는 ssd를 더 많이 사용하는데 ssd의 이점은 따로 정리하려고 한다!)

메인보드
모든 하드웨어 부품을 연결하는 기판이다 각 부품 간의 데이터 전송을 담당하고 있으며
메인보드의 사양이 높으면 높을수록 위에서 설명한 부품들을 더 많이 더 좋은사양으로 탑재가 가능하다

전원공급장치(psu)
각 부품에 필요한 전력을 공급하고 외부 전원을 컴퓨터에 맞는 전압으로 변환하는 장치이다
전원공급장치는 또 GPU의 성능에도 영향을 미치는데 나중에 좀 더 디테일한 컴퓨터 글을 작성할때
적도록 하겠다!

기본적인 장치들은 이렇게 구성이 되어 있으며 최신 기종에 따라
네트워크어댑터 / GPU / 쿨러() 등 다양한 하드웨어가 들어가며
각각의 하드웨어마다 가격은 천차만별이다
특히 그놈의 GPU는 코인때문에 진짜 가격이 ㅡㅡ 🤬 하

아무튼 이 모든 부품들은 버스(Bus)라는 데이터 통로를 통해 서로 연결되어 있어서 정보를 주고받을 수 있다
이러한 기본 구조를 폰 노이만 구조라고 부르며
현대 대부분의 컴퓨터가 이 구조를 따르고 있다 (그냥 컴퓨터가 폰 노이만 구조를 통해 이루어진다라고 생각하자)


📌 CPU

디테일하게 CPU에 대해 작성해보자면 (와 근데 나 이거 어캐외움 내 자신 칭찬함 100% 내 지식이다 이거)

❗️ CPU (Central Processing Unit)
CPU는 컴퓨터의 두뇌 역할을 하는 핵심 부품

다음과 같은 주요 요소들로 구성된다
제어장치 / 연산장치 / 레지스터

❗️ 성능 결정 요소
✅ 코어(Core) 실제 연산을 처리하는 물리적 처리장치
4코어는 4개, 8코어는 8개의 작업을 동시 처리 가능
코어가 많을수록 멀티태스킹 성능이 향상

✅ 스레드(Thread): 하나의 코어가 처리할 수 있는 작업 단위
하이퍼스레딩 기술로 1코어가 2개의 스레드 처리 가능
(예: 6코어 12스레드는 12개의 작업 동시 처리 가능)

✅ 클럭속도: CPU의 처리 속도 (GHz 단위)
3.5GHz = 1초에 35억 번의 연산 가능
높을수록 단순 연산 속도가 빨라짐 = 프로그램 구동면에서 탁월하게 빨라진다
(요즘엔 부스트클럭이라고 해서 프로그램이나 브랜드에서 만든 자체 툴로 부스팅이 가능해서 최대전력으로도 부스팅이 가능하다 물론 이거 맨날하면 컴터 녹는다고 생각하면 된다)


❗️ 캐시 메모리
L1, L2, L3 캐시로 구성
RAM보다 빠른 CPU 전용 고속 메모리
용량이 클수록 자주 사용하는 데이터 처리가 빨라짐

CPU의 이러한 요소들이 좋을수록 전반적인 컴퓨터 성능이 향상되며
특히 고사양 게임, 영상 편집, 3D 렌더링 같은 복잡한 작업에서 차이가 크게 나타난다고 보면 된다

그래서 최신 CPU를 보면 멀티코어 쿼드코어 어쩌구가 이런데에서 나온다고 보면 된다


자 이제 대망의 CPU 스케쥴링이다
이건 용어가 조금 어렵다 걍 외워버리도록 하자(용어가 생소하기 땜시 근데 개념은 쉬움)

❗️ CPU 스케쥴링
CPU가 여러 프로세스를 어떤 순서로 실행할지 결정하는 방식이다
다양한 프로세스들이 효율적으로 처리될 수 있도록 관리하는 시스템이라고 볼 수 있다
스케쥴링 방식이 4개정도가 있지만 현재에는 우선순위/라운드로빈 방식으로만 주로 사용하고 있다

➡️ 스케쥴링 방식

  1. FCFS (First Come First Served)
    먼저 온 순서대로 처리
    은행 번호표처럼 순서대로 처리하는 방식
    줄 서가지고 일일히 다 기다리고 처리하는 방식이라고 생각하면 된다
    (그런데 요즘은 FCFS방식을 쓰지 않는다 아니 쓰고싶어도 못쓴다; 왜냐 CPU성능이 워낙 좋아져서
    구석기 시대 컴퓨터가 아닌 이상 하나하나 처리할 필요가 없어졌다 그냥 과거의 영광으로만 알아두자)

  2. SJF (Shortest Job First)
    실행 시간이 짧은 작업 먼저 처리
    간단한 메모장 작업을 복잡한 게임보다 먼저 처리
    빨리 끝나는 일 먼저 처리하고 싶은 마음
    (이것도 위와 같은 이유로 CPU성능이 좋아져서 SFJ도 쓸 일이 없다.. 과거의영광2)

  3. 우선순위 스케줄링
    중요도에 따라 처리 순서 결정
    시스템 작업이 일반 프로그램보다 우선
    "저 똥이 마려워서 그런데.." 가 통하는 시스템
    이건 아직도 적용되는 스케줄링인데 사실 기본 os 프로세스 라던지
    중요한 시스템, 프로그램 프로세스는 항상 먼저가 되어야 하니까
    당연하게도 우선순위에 따라 스케줄링이 나뉜다
    그런데 요즘의 우선순위 스케쥴링은 훨씬 더 정교하고 사람이 우선순위를 나눌 수가 있다

  4. Round Robin
    모든 프로세스에 동일한 시간 할당
    시간 다 쓰면 다음 차례로 넘어감
    놀이기구 타는 시간처럼 공평하게 나누기
    현대에서도 쓰이는 스케쥴링 방식이지만 역시나 더 섬세하고 정교하게 변했다
    예전에는 정말 공평하게만 나눠서 더 많이 시간을 잡아먹는 프로세스가 버벅이는 문제가 생겼다면
    이제는 시스템에서 쓰이는 프로세스의 상황에 따라 유연하게 대처하며 스케쥴링을 진행한다

쉽게 말해서 여러 어디서 세일해가지고 난리가 났는데 "제가 먼저요!", "저 급해요!" 하고 있을 때
CPU가 "아 저 아줌마부터 여기까지 이렇게 순서대로 할게요~" 하면서
사람들을 차례차례 이용할 수 있게 만들어주는 과정이라고 생각하면 된다


📌 프로그램 실행 과정

이건 뭐 기본적인거라 그냥 하드웨어의 기능만 생각하면 다 알거라 생각하는데
순서대로 정리를 좀 해보겠다

  1. 저장장치(HDD/SSD)에서 시작
    실행하려는 프로그램이 저장장치에 저장되어 있음
    사용자가 프로그램 실행 명령을 내림 = 게임 더블클릭
    👇
  2. RAM으로 로딩
    실행할 프로그램이 RAM(메모리)으로 복사됨
    RAM은 빠른 접근이 가능한 임시 저장소
    이것이 우리가 말하는 "프로그램 로딩" 과정 = 게임 로딩과정
    👇
  3. CPU 처리
    RAM에 올라온 프로그램 명령어를 CPU가 하나씩 처리
    제어장치가 명령어를 해석하고 연산장치가 실제 계산 수행
    처리 결과는 다시 RAM에 임시 저장 = 게임이 로딩이 되어 시작화면 나타날때쯤
    👇
  4. 결과 출력/저장
    처리된 결과가 화면에 표시되거나
    필요한 경우 저장장치에 영구 저장됨 = 게임 실행하고 이것저것 하는중

이래서 RAM이 부족하면 프로그램이 버벅대고 = 저는 이거 20kg들기도 힘든데여;;?
CPU가 느리면 실행이 늦어지는거다 = 나는 하나만 계산할랭 ㅋㅎ
이래서 비싼 그놈의 하드웨어끼리 똘똘 뭉쳐서 프로그램이 실행되는 거라 생각하면 된다


📌 인터럽트

이건 사실 요즘 컴퓨터들은 인터럽트가 많지 않다
예전 windows xp나 10전 모델들이나 나왔지
현재기준 맥os나 windows기준 현재 os들은
자체적으로 모든 인터럽트를 키고 끌 수가 있기땜시.. 별로 볼 일이없다

그리고 하드웨어 오류가 났을 시 요즘엔 굉장히 세련되어서
OS자체적으로 인터럽트가 나는것은 막는다고 한다

예전 컴(windows xp 기준 파란화면도 인터럽트다 ^&^ 늙은이 인증)
윈도우 블루스크린
인터럽트의 대표적인 예시 - Windows BSOD (Blue Screen of Death)
(👆 와 진짜 추억이네 아니 근데 밀레니엄 베이비들이 xp나 98을 알까..?)

❗️ 인터럽트를 정의하자면
CPU가 프로그램을 실행하고 있을 때 예기치 않은 상황이나 우선순위가 높은 작업이 발생하여 처리가 필요할 경우
현재 실행 중인 작업을 중단하고 발생된 상황을 먼저 처리하는 것을 말한다
(그런데 요즘에는 거의 OS적인 부분에서 인터럽트가 없음)

걍 쉽게 이해하자면 게임하고 있는데 갑자기
Windows 업데이트 팝업이 뜨는 것도 일종의 인터럽트라고 볼 수 있다 정도로만 생각하자

현재 기준 하드웨어 업데이트나 기본적인 컴퓨터의
업데이트들은 다~ 편리하게 딱딱 지들이 알아서 한다


📌 프로세스

프로세스는 그냥 내가 켜놓은 프로그램이다
윈도우 기준 ctrl+alt+delete 국민 오류 해결 단축키를 통해 프로그램을 강제로 제어할 수 있는데
이때 프로세스라는 탭에 들어가보면 내가 켜놓은 프로그램들이 쫘라락 나열되어있다
걍 1프로세스 = 1프로그램 ez

❗️ 프로세스 특징 (이건 외워두자)
독립된 메모리 공간 할당
운영체제로부터 자원을 할당받음
다른 프로세스와 격리되어 실행
각각 고유한 프로세스 ID(PID) 보유

그래서 프로세스 생성부터 종료까지 쭉 나열해 보자면
아래와 같은 프로세싱을 거치며 이루어진다

1. 생성(New)
프로세스가 처음 만들어진 상태
예: 프로그램 아이콘을 더블클릭한 직후
👇
2. 준비(Ready)
CPU를 사용할 수 있게 대기하는 상태
실행될 순서를 기다리는 중
👇
3. 실행(Running)
CPU가 실제로 프로세스를 실행하는 상태
현재 작업이 처리되는 중
👇
4. 대기(Waiting/Blocked)
입출력 작업 등으로 CPU를 사용할 수 없는 상태
예: 파일 저장 중 혹은 게임할때 걍 켜놓고 있을 때 등
👇
5. 종료(Terminated)
프로세스 실행이 완료된 상태
메모리와 자원이 반환됨


📌 컨텍스트 스위칭

말이 좀 어렵지 alt+tab이다
맥에서는 우리의 스테이징 매니저가 있겠쥐?

유식하게 면접용으로 적어보자면
컨텍스트 스위칭은 현재 실행 중인 프로세스의 상태를 저장하고
다음 실행할 프로세스의 상태를 불러오는 작업이라고 생각하면 된다

사실 예라고 해봤자
어렸을 때 몰래 게임하고 있는데 갑자기 엄마가 들어왔다
그러면 빛보다 빠른 속도로alt+tab 눌러 공부환경으로 전환하는 과정인데
부모님 등장: 0.001초 만에 전환 완료

그럼 나는 6살때부터 컨텍스트 스위칭 마스터였던 거다;


기본 컴퓨터 운영체제 관련 내용은 아마 게임을 좋아하거나 컴퓨터를 좋아하는 사람이라면
정말 쉽게 공부가 가능한 분야일거라 생각한다
특히..아 진짜 노트북 때문에 자동적으로 공부된것만 생각하면
하... 그리고 결국 노트북을 정하긴 정했으나 아직 구매까지 이어지지 않았음으로
쬐에에끔만 더 알아보고 노트북을 구매해야겠다.. 끗

profile
끄적

0개의 댓글