[신입 CS 질문] 운영체제

박의진·2023년 7월 31일
0

CS

목록 보기
3/8

운영체제

시스템의 자원과 동작을 관리하는 소프트웨어

운영체제 역할

  • CPU 스케쥴링 관리
  • 메모리 관리
  • 디스크 파일 관리
  • I/O 디바이스 관리

CUP

  • 중앙처리장치
  • 산술논리연산장치, 제어장치, 레지스터(매우 빠른 임시기억장치)로 구성됨
  • 인터럽트(어떤 신호가 들어왔을 때 CPU를 잠시 정지시킴)에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행

메모리

  • 데이터나 상태, 명령어 등을 기록하는 장치
  • RAM을 일컬어 메모리라고 함

메모리 계층

1. 레지스터

  • 작은 메모리, 휘발성, 속도가 가장 빠르고 용량이 작음

2. 캐시

  • 데이터를 미리 복사해 놓는 임시 저장소
  • 병목현사을 줄이기 위한 메모리
  • 휘발성, 속도빠름, 욕량 적음

3. 메모리/주기억장치

  • RAM, 휘발성, 속도보통, 용량 보통

4. 저장창지/ 보조기억장치

  • HDD / SSD를 말하며 휘발서, 속도 낮음, 기억용량 많음

메모리 구조

CODE

  • 소스코드가 들어감

DATA

  • 전역변수, 정적변수가 할당
  • 정적인 특징을 갖는 프로그램이 종료되면 사라지는 변수가 들어있는 영역

HEAP

  • 사용자가 직접 관리하는 영역으로 동적 데이터가 할당되는 공간
  • 런타임 시에 크기가 결정되고 동적인 특징을 가짐

STACK

  • 함수의 호출 정보, 지역변수, 매개변수들이 저장되는 공간
  • 컴파일 시에 크기가 결정
  • 스택영역은 동적으로 크기가 늘어날 수 있기에 힙과 영역이 겹치면 안돼서 힙과 스택 사이에 공간을 비워 둠

프로세스

  • 컴퓨터에서 실행되고 있는 프로그램을 의미
  • CPU 스케쥴링의 대상이 되는 작업

스레드

  • 프로세스 내 작업의 흐름을 지칭
  • 두개 이상의 스레드를 가지는 프로세스를 멀티 스레드 프로세스라고 부름

멀티 프로세스

  • 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리

멀티스레드

  • 프로그램을 여러개의 스레드로 구서하고 스레드가 작업을 처리하는 것
  • 자원소모 감소, 비용감소,스레드간 자원 공유
  • 동기화 이슈 발생

가상메모리

  • 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게는 매우 큰 메모리로 보이게 하는 것
  • 프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관하는 방법

컴파일러

  • 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환

쿠키

  • 만료기한이 있는 키-값 저장소
  • 사용자의 컴퓨터에 저장하는 기록 정보 파일
  • 유효시간이 정해지면 브라우저가 종료되어도 유지

세션

  • 사용자 정보 파일을 쿠키와 달리 서버에서 관리
  • 서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하고 웹 브라우저가 서버에 접속해 브라우저를 종료할 때 까지 인증 상태 유지
profile
주니어 개발자의 개발일지

0개의 댓글