목록CS (3)
오늘도 개발
1. 프로세스의 종류 Independent 프로세스 다른 프로세스와 영향을 주고 받지 않는 독립적인 프로세스 Cooperative 프로세스 다른 프로세스와 영향을 주고 받는 프로세스 Independent 프로세스보다 많이 사용됨. 2. 동기화란? Race Condition 공유하는 데이터에 두 개 이상의 프로세스(또는 스레드)가 동시에 접근했을 때, 데이터의 일관성(data inconsistency)이 깨지는 경우를 Race Condition이라고 한다. ex) 통장 잔고가 10만원 있음. A에게 계좌이체 6만원, B에게 계좌이체 7만원하라는 명령이 동시에 들어온다면? A 프로세스가 잔고를 읽었을 때 10만원이 있었기 때문에 6만원 송금. B 프로세스도 잔고를 읽었을 때 10만원이 있었기 때문에 7만원 ..
1. 프로세스와 스레드 프로그램 코드가 들어있는 파일. 저장 장치에 저장되어있지만 RAM에는 올라가있지 않은 정적인 상태. 프로세스 실행중인 프로그램. RAM에 적재된 동적인 상태. 프로그램을 실행하면 OS가 해당 프로그램을 위한 프로세스 인스턴스를 만들어 RAM에 적재한다. OS는 프로세스 인스턴스를 만들 때 해당 프로세스가 사용할 수 있는 자원을 할당해준다. OS가 할당하는 자원은 다음과 같다. - 해당 프로세스가 차지할 수 있는 CPU의 시간 - 운영을 위해 필요한 주소 공간 - 독립된 메모리 영역(Code, Data, Stack, Heap으로 구성) 정리하자면 프로세스는 OS로부터 자원을 할당받은 작업 단위라고 할 수 있다. 한 개의 프로세스는 최소 한 개의 스레드를 갖는다. 과거에는 프로그램을 ..
우리가 작성하는 코드를 소스코드라고 하고 컴퓨터가 이해할 수 있는 0과 1로 된 코드를 머신코드라고 한다. 우리가 작성하는 모든 코드는 머신코드로 변환하는 과정을 거쳐야 컴퓨터가 실행할 수 있다. 인터프리팅과 컴파일은 소스코드를 머신코드로 변환하는 두 가지 방법이다. 인터프리팅을 사용하는 언어를 스크립트 언어라고 하고 컴파일을 사용하는 언어를 컴파일 언어라고 한다. 컴파일(Compilation) 컴파일러가 소스코드 전체를 한꺼번에 머신코드로 변환한다. 컴파일 후 언제든지 원하는 시점에 실행할 수 있다. 에러가 있으면 컴파일이 안 되기 때문에 프로그램 실행 자체가 불가능하다. (parsing 단계에서 에러를 감지하고 컴파일을 멈춤) 자세한 컴파일 단계는 다음과 같다. 1) Tokenizing(Lexing)..