⭐️ 운영 체제란?
컴퓨터 시스템의 자원들을 효율적으로 관리
하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용
할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다.
- 운영체제는
컴퓨터와 사용자
, 컴퓨터와 하드웨어
간의 인터페이스
로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.
- ex) 윈도우, 유닉스, 리눅스, 맥OS, IOS, 안드로이드
하드웨어
- 손으로 만질 수 있는 형태를 가진 장치들을 의미한다. 즉, 컴퓨터나 컴퓨터에 붙어 있는 주변 장치들을 하드웨어라고 한다.
- 컴퓨터 본체나 CPU, 모니터, 키보드 등이 모두 하드웨어이다.
소프트웨어
- 손으로 만질 수 없지만, 하드웨어를 움직일 수 있게하는
명령어들의 모임
이다. 소프트웨어는 시스템 소프트웨어
, 응용 소프트웨어
로 분리해서 볼 수 있다.
- 시스템 소프트웨어는
하드웨어를 직접 컨트롤(제어)
할 수 있는 특별한 소프트웨어이다. 즉, iOS, 윈도우와 같은 운영체제
들이다.
- 응용 소프트웨어는 하드웨어를 직접 컨트롤이 안되는 소프트웨어이다. 예를 들면, 파워포인트나 인터넷 익스플로러는 하드웨어를 직접 건드릴 수 없다. 즉, 문서 작성, 메시지 주고 받기, 동영상 편집 등 다양한 일을 하기 위해서 컴퓨터의 기술을 응용한다.
⭐️ 메모리 구조
- 코드 영역 (Text Segment 또는 Code Segment):
- 실행 할 프로그램의
명령어 코드
가 저장되는 영역입니다.
- CPU는 프로그램의 명령어를 차례로 읽어 실행합니다.
읽기 전용(Read-Only)
으로 설정되어 있어 프로그램 코드가 수정되지 않습니다.
- 데이터 영역 (Data Segment):
정적 변수
, 전역 변수
등 프로그램이 실행될 때 할당되는 데이터가 저장되는 영역입니다.
- 초기화된 데이터와 초기화되지 않은 데이터가 포함됩니다.
- 초기화 된 변수 영역(initialized data segment), 초기화되지 않은 변수 영역(uninitialized data segment)
- 초기화되지 않은 변수 영역은 BSS(Block Started by Symbol) 이라고도 합니다.
- 전역 변수와 정적 변수는 여기에 저장됩니다.
- 힙 영역 (Heap):
- 프로그램 실행 중
동적
으로 할당되는 메모리가 저장되는 영역입니다.
- 메모리의 크기를 동적으로 조절할 수 있어서, 프로그램 실행 중에 메모리를 동적으로 할당하거나 해제할 수 있습니다.
- 힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당됩니다.
- 스택 영역 (Stack):
함수 호출과 관련된 정보
, 지역 변수
등이 저장되는 영역입니다.
- 함수가 호출될 때마다 스택에 새로운 프레임이 추가되고, 함수가 반환될 때 해당 프레임이 제거됩니다.
후입선출(LIFO, Last In First Out)
구조를 가지고 있습니다.
- 스택 영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됩니다.