OS

    OS가 하는 일 및 컴퓨터 구조

    OS가 하는일 OS는 응용프로그램간 하드웨어 사용을 조정하고 데이터를 관리한다. 사용자 관점 사용자가 어떻게 사용하느냐에 따라 달라진다. 예를 들어 데스크탑 같은 범용 컴퓨터는 주로 사용의 용이성에 집중하고, 스마트폰 같은 경우는 배터리와 낮은 퍼포먼스 때문에 연산을 적게하고 들고다니며 사용하기 쉽게하기 위해 인터페이스를 간소화한다. 시스템 관점 자원을 어떻게 해야 효율적으로 관리할 지를 결정하는 역할을 한다. Computer System Operation 현대의 컴퓨터 구조는 CPU, 메모리, 디스크, USB, 그래픽 어댑터로 구성된다. 컴퓨터가 구동을 하기 위해선 하드웨어를 초기화 하고 OS를 메모리에 적재할 프로그램에 가지고 있어야하는데 이를 bootstrap program이라 부른다. bootst..

    프로세스 메모리 구조와 스택 프레임 구조

    프로세스 메모리 구조 프로세스의 메모리 구조는 Text, Data, Heap, Stack 영역으로 구분되어 있다. 프로세스 메모리 구조 Text 영역 : 프로그램 코드와 상수가 정의되어 있고, 읽기만 가능한 메모리 영역이기 때문에 데이터를 저장하려고 하면 분할 충돌을 일으켜 프로세스가 중지된다. Data 영역 : 전역 변수(Global variable)와 정적 변수(Static variable)가 저장되어 있는 영역이다. Heap 영역 : 프로그래머의 필요에 따라 동적 메모리 호출에 의해 할당되는 메모리 영역이다. c언어의 기준으로 malloc() 함수나 calloc() 함수에 의해 생성된 변수들이 이 곳에 할당된다. Stack 영역 : 함수 인자 값, 함수 내의 지역 변수, 함수의 반환 주소 등이 저장..

    운영체제 프로세스 스레드 메모리 구조

    프로그램(Program) 어떤 작업을 위해 실행할 수 있는 파일로 정의할 수 있다. 프로세스(Process) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 또는 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적 개체) 즉, 운영체제로 부터 시스템 자원을 할당받는 작업의 단위이며 실행된 프로그램을 의미한다. 할당 시스템 자원 CPU시간, 운영시 필요한 주소공간 Code, Data, Stack, Heap의 구조로 되어있는 독립된 메모리 영역 프로세스 메모리 영역 프로세스는 각각 도립된 메모리 영역(Code, Data, Stack, Heap)구조를 할당받게 되며 프로세스당 최소 1개의 메인스레드를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자..