본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 논리 메모리와 물리 메모리 CPU가 프로세스를 처리할 때 보는 주소 값과 실제 메모리의 주소 값은 다르다. 프로세스가 보는 메모리 영역을 논리 메모리 영역이라 하고, 실제로 사용되는 메모리 영역을 물리 메모리 영역이라고 한다. 그리고 CPU가 프로세스를 실행할 때 보는 주소 값을 논리 주소, 메모리의 하드웨어 상 실제 주소를 물리 주소라고 한다. 논리 주소는 프로세스마다 0번지부터 시작하는 주소 체계이다. 따라서 물리 주소의 번지 수는 중복될 수 없지만, 논리 주소의 번지 수는 중복으로 존재할 수 있다. 이처럼 CPU가 프로세스를 실행할 때 사용하는 주소 값과 실제 하드웨어 상의 주소 값이 다르므로..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 한정적인 CPU 자원 내에서 모든 프로세스를 공평하게 실행하는 것은 OS의 주요 목적이다. 스케줄링의 목적 멀티 프로세스 환경에서 모든 프로세스를 공평하게 실행하기 위해 스케줄링 기법을 활용한다. schedule이라는 의미에 맞게, 어떠한 작업의 순서를 계획한다고 생각하면 된다. 스케줄링은 세부적으로 다음 5가지의 목적이 있다. 공평성 : 특정 프로세스가 실행되지 않는 경우가 없어야 한다. 효율성 : 자원을 효율적으로 사용해 자원이 사용되지 않는 시간이 없어야 한다. 안정성 : 높은 우선순위의 프로세스를 먼저 처리한다. 반응 시간 보장 : 프로세스가 오랜 시간 응답이 없으면 사용자는 시스템이 멈춘 ..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. ✔️ 임계 영역 프로세스 혹은 스레드가 공유하는 자원을 공유 자원이라고 한다. 만약 두 프로세스 A와 B가 각각 공유 메모리를 쓰고 읽는 작업을 한다고 할 때, A와 B가 실행되는 순서에 따라 다른 결과를 초래할 수 있다. B가 먼저 실행이 된다면 아직 쓰이지 않은 메모리를 읽으려 하기 때문에 문제가 발생할 수 있다. 이와 같이 접근 순서에 따라 다른 결과를 나타낼 수 있는 코드 구역을 임계 영역(critical section)이라고 한다. 이번에는 동시에 파일을 수정하는 스레드를 생각해보자. 초기 파일에 저장된 값이 'first'라 가정하고 스레드 A는 'thread A'를 파일에 추가하는 작..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 프로세스프로세스는 컴퓨터에서 실행 중인 프로그램을 의미한다. ✔️ 프로세스의 메모리 구조 컴퓨터의 메모리는 RAM, 레지스터와 같이 물리적인 컴퓨터의 구성요소이고, 지금 볼 프로세스의 메모리는 운영체제가 해당 프로세스에 할당한 논리 메모리 구조이다. 프로세스의 메모리 구조는 다음 그림과 같다. 커널 영역에는 프로세스 제어 블록 (PCB)이 저장되고, 사용자 영역에는 코드, 데이터, 힙, 스택 영역으로 나뉘어 저장된다. 코드 영역 코드 영역은 함수, 상수와 같은 기계어가 저장되는 공간으로, 텍스트 영역이라고도 한다.CPU가 읽고 실행할 명령어가 담겨 있기 때문에 읽기 전용 공간이다. 만약 쓰기가 ..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 운영체제란?운영체제(OS: Operating System)는 하드웨어 위에 설치되어, 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층이다. 또한, 컴퓨터 자원을 효율적으로 관리하기 위한 시스템으로, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 한다. 만약 운영체제가 컴퓨터에 탑재되어있지 않다면, 우리가 컴퓨터를 이용해서 사용하는 모든 기본적인 프로그램들을 사용할 수 없을 것이다. `ex. Excel` 대표적인 OS로는 윈도우, 맥OS, 리눅스, 유닉스가 있다. 운영체제의 구조 운영체제는 커널과 인터페이스로 구성되어 있다. 커널 커널은 운영체제의 핵심 요소로, 하드웨어의 ..