[책: IT 세계의 괴물들] 소프트웨어에 대해

2025. 3. 16. 18:30·Computer Science
728x90

서론 

테마별로 책에 대한 기록 중이다. 

테마 1이었던 반도체에 대해서는 이 글을 읽어보도록 하자. 

이번에는 테마2인 소프트웨어이다. 

바로 본론으로 들어가보자. 

 

소프트웨어

  • OS (Operating System : 운영체제)
    CPU, GPU 같은 반도체들에게 작업절차를 안내한다. 
    자세하게는 작업 스케줄링과 리소스를 관리한다. 
    OS 는 커널(kernel) 을 통해 작업절차를 전달한다. 
    그래서 순차적인 흐름은 어떠한 어플리케이션에서 시스템 호출이 들어오면, OS 는 커널을 통해 작업절차를 안내하는 형식이다. 
    더보기
    OS 에는 커널말고도 Device Driver, Memory management 라는 게 있다. 
    - Device Driver 는 키보드, 마우스, USB 등 외부 입출력 장치와 연결 및 통신을 제어해준다.
    - Memory Management 는 시스템 전체 메모리 사용량을 모니터링하며, 
      메모리가 부족하면 일부를 SSD 에 분배했다가 램에 공간이 생기면 다시 로드를 한다.
      또한, 다른 프로그램이 할당되지 않은 메모리를 마음대로 사용할 수 없게 접근을 막는다. 
  • 시스템 호출 (System Call) : 어플리케이션이 OS 에 특정 서비스에 대한 요청을 하는 것이다. 
    더보기
    예를 들어, PPT 어플리케이션에서 사용자가 저장버튼을 눌렀다고 가정했을 때
    1. PPT 어플리케이션은 OS 에게로 시스템 콜을 보낸다. 
    2. OS 는 커널을 통해 반도체에 작업절차를 전달한다. 
    3. CPU 는 메모리에서 작업절차를 검색하고 수행하는데, 이 때 CPU 는 PPT 와 같은 어플리케이션, OS 등의 작업절차를 직접 수행한다.
    4. RAM 은 CPU 에서 작업 중인 데이터를 SSD 에 저장한다. 
  • 커널 (Kernal) 
    커널은 위에서 언급했듯이 OS 가 CPU 나 GPU, RAM 에게 작업절차를 전달할 때 사용이 되기도 하지만 
    커널 스케줄러를 통해 반도체의 리소스들을 관리한다. 
    또한 어느 한 프로그램이 자원(CPU, GPU, RAM 등) 을 독점하지 못하게 다른 프로그램에도 자원을 할당하고 어떤 프로그램이 조용하면 대기상태로 만든다.
  • BIOS / UEFI
    컴퓨터가 켜지면 가장 먼저 동작해서 시스템 HW 를 초기화 시키고 부트로더를 실행시키는 펌웨어이다. 
  • 부트로더 
    컴퓨터가 켜지면 BIOS / UEFI 에 의해서 실행이 된 후 OS 를 SSD 에서 RAM 으로 로딩하는 펌웨어이다. 
  • 부팅
    사용자가 컴퓨터를 부팅하게 되면 BIOS 기상나팔이 울리고 ROM 에서 부트로더가 OS 를 싣고 출발한다. 
    그리고 부트로더가 OS 를 SSD 에 내려주고 SSD 에서 OS 는 RAM 으로 로딩시켜준다. 
    이러한 과정을 부팅이라고 한다. 
    더보기
    펌웨어 : 특정 하드웨어 장치에 포함된 영구적인 소프트웨어이다. 
    ROM : 한번 기록된 정보를 읽을 수만 있는 메모리 반도체로 비휘발성 메모리이다. 
    - 여기서 RAM 으로 로딩되는 이유로 OS 는 아주 중요하기 때문에 RAM 의 메모리 공간을 가장 먼저 확보해야하기 때문이다. 

 

 

구분 정의 예시
프로그램 시스템 소프트웨어  - 어플리케이션이 원활히 운영될 수 있도록 컴퓨터의 리소스를 관리한다. 
- 각종 장치와 프로그램을 지원/제어하는 필수 소프트웨어
OS
펌웨어
미들웨어 
드라이버
소프트웨어 플랫폼 등 
어플리케이션 소프트웨어 - 유저가 특정 목적을 위해 직접 사용한다.
- 특정 작업을 실행하면 컴퓨터의 리소스들이 이를 수행하도록 지시하는 소프트웨어  
게임
영상/음악 재생
문서 작성
웹 브라우저
주식투자 
금융거래
코딩 IDE 
영상편집
등 
데이터 유저가 프로그램을 사용하면서 저장, 파생되는 정보 게임 세이브 파일
인터넷 쿠키
GPS 메타데이터 등 

 

  • 1Byte : 소프트웨어를 표현하는 일반적인 단위인 8bit 
  • 기계어 : 2진수(바이너리) 로 구성된 컴퓨터 CPU 가 이해하고 실행할 수 있는 언어 
  • Bit Flip 
    메모리 상의 하나 혹은 그 이상의 비트가 0 에서 1이나 1에서 0 으로 바뀌는 현상이다. 
    이는 메모리의 정보가 실제와 다르게 저장되어 발생할 수 있다. 
    일반적으로 Bit Flip 은 반도체 자체나 트랜지스터의 결함, 전파장애, 고온 고습 등에 의해 발생한다. 

 

  • C 언어 
    • 최초 1972 년에 출시된 언어
    • 포인터 
      다른 변수의 메모리 주소를 저장하는 변수
      메모리 위치를 직접 조작할 수 있기에 효율적이고 유연한 프로그래밍 가능 
      이를 통해 메모리를 할당하고 해제한다. 
    • 메모리 사이즈가 작다. 
    • 컴파일 언어 (Compiled Language) 
      밑의 빌드를 통해 인간이 읽을 수 있는 코드를 기계가 읽을 수 있는 코드와 실행 파일로 만드는 언어를 말한다. 
    • 빌드 순서
      1. 컴파일러를 통해 어셈블리 코드가 된다. 
      2. 어셈블리코드는 다시 어셈블러를 거쳐서 오브젝트 코드가 된다. 
      3. 오브젝트 코드는 링커를 통해 필요한 실행 파일의 형태를 갖춘다. 
      4. 이 모든작업을 빌드라고 한다. 
  • Heap 
    데이터 구조와 변수 저장을 위해 동적으로 할당되는 RAM 의 메모리 영역이다. 
    이 때, 메모리 영역을 잘 사용하지 않으면
    RAM 내 할당된 메모리 블록 범위를 넘어서 메모리에 액세스 하려고 할 때 메모리 오버플로우 라는 에러가 발생할 수 있다. 
  • 컴파일 (Compile) 
    프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하는 과정을 말한다. 
    • 컴파일러(Compiler) : 소스코드를 읽어 기계어로 변환하고, 이를 실행할 수 있는 실행파일을 생성하는 빌드의 절차중 하나. 

 

 

728x90

'Computer Science' 카테고리의 다른 글

[책: IT 세계의 괴물들] 반도체에 대해  (2) 2025.03.09
'Computer Science' 카테고리의 다른 글
  • [책: IT 세계의 괴물들] 반도체에 대해
is낫널
is낫널
  • is낫널
    아직은 NULL NULL 합니다
    is낫널
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • Computer Science (12)
        • 운영체제 (3)
        • Java (4)
        • Spring (0)
        • 네트워크 (2)
        • 자료구조 및 알고리즘 (0)
        • 데이터베이스 (1)
      • Algorithm (10)
        • BOJ & SWEA (8)
        • Programmers (0)
        • 이론 (2)
      • Project (7)
        • Team (3)
        • Personal & Toy (4)
      • 사회인 준비생 (22)
        • SSAFY (5)
        • 이직 (1)
        • TIL (14)
      • 무작정 따라해보기 (1)
        • 블로그 (1)
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 태그
    • 방명록
    • 블로그 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    BOJ
    Java
    문자열
    코딩테스트
    CS지식
    14510 나무 높이
    CPU의 구성요소
    LAMBDA
    Roy Fielding
    개발자
    카카오톡API
    인터럽트핸들러
    알고리즘
    transiant
    백준
    백엔드 면접지식
    sw적성진단
    비전공자
    딩코딩코
    개발
    자바
    백엔드
    파이썬
    개발공부
    빈 라인
    it세계의 괴물들
    backend
    AWS
    그림자 문제
    HTTP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
is낫널
[책: IT 세계의 괴물들] 소프트웨어에 대해
상단으로

티스토리툴바