20231018 Os Week2

Process Abstraction 어플리케이션이란 컴퓨터에서 어플리케이션이란 특정 기능을 수행하는 실행파일, executable 이 기능을 수행가능해진 상태를 지칭한다. 프로그래밍 언어로 작성된 코드가 컴파일, 어셈블, 링킹 과정을 통해 실행가능한 명령어의 집합으로 이루워진 실행파일을 생성한다. 컴파일은 고수준의 언어를 저수준의 언어로 변환하고, 어셈블을 저수준의 언어를 기계어로 변환한다. 이렇게 파일별로 생긴 목적 파일 (*.o) 과 스태틱 라이브러리등을 링커가 엮어서 하나의 바이너리로 가공한다. 이런 과정을 통해 생성한 바이너리를 로더가 다음과 같은 과정을 거쳐 실행을 하게 된다. 디스크에서 바이너리를 읽어온다 code, data, heap, stack 을 메모리 내 위치를 잡는다 공유 라이브러리가 필요하다면 같이 링크한다 (메모리에 같이 shared library 의 형태로 올라간다) OS 커널에게 어플리케이션의 실행을 요청한다....

October 19, 2023 · 4 min · Byungjun Yoon

CSED312 OS Week 1

운영체제의 역할 OS는 프로그램을 실행하고, 프로그램 간에 메모리를 공유하고, 디바이스와 상호작용을 하는 책임이 있다. 이 때 운영체제는 이러한 작업을 정확하고 효율적으로 처리하기 위해 존재한다. 다양한 물리 디바이스를 가상 형태로 변환해서 다룬다. 또한, 운영체제는 CPU, memory, disk 등의 리소스 매니저 역할을 한다. 여러 프로그램들을 수행하고 싶을때, cpu를 공유하고, 동시에 여러 프로그램의 메모리에 엑세스하고 싶은때 메모리 공유등의 작업을 수행한다. 프로그램이 파일을 만들고 싶을때, 프로그램이 OS에 파일을 만들도록 요청하고, OS가 물리 디바이스에 실제 파일을 생성하게 된다....

October 18, 2023 · 4 min · Byungjun Yoon