프로세스 관련 함수Win32 APIUNIXCreateProcess();fork(); exec();ExitProcess();exit();WaitForSingleObject();wait(); 새로운 프로세스 생성OS는 프로세스 마다 가상메모리 공간을 할당한다.새로운 프로세스가 정상 작동하기 위해 가상 메모리 공간이 준비되어야 한다.Process + PCB + VMS(가상 메모리 공간)새로운 프로세스 생성 시 부모 프로세스(기존)와 자식 프로세스(새로운)로 관계가 형성된다. fork와 exec의 차이fork(): 새로운 프로세스를 위해 메모리를 할당한다, 기존 프로세스를 복사한다.exec(): 새로운 프로세스를 위해 메모리를 할당 하지 않고, exec()에 의해 호출된 프로세스만 메모리에 남게된다.fo..
Process와 Thread의 차이프로세스(Process) = 관리의 단위 = 연산할 것프로세스 = 파일로 되어 있는 프로그램의 일부가 메모리에 적재된다. (실행되고 있는 프로그램)프로세스(작업)는 최소 1개의 스레드가 존재한다.스레드(Thread) = 1개 프로세스 내 개별화된 코드의 실행 흐름멀티 스레딩(Multi Threading) = 1개 프로세스 내 개별화된 여러 개의 실행 흐름 가상메모리에 할당된 공간OS는 Virtual Memory를 프로세스에 할당한다.프로세스에 속한 모든 스레드는 프로세스의 Virtual Memory로 공간이 제약된다.스레드는 실질적 연산의 주체멀티 스레딩 → 동시성 + 동기화 이슈프로세스 = 1 가구스레드 = 1 세대원Vurtual Memory = 1 가구가 존재하는 ..
CPU가 예측해서 발생한 심각한 문제(CPU 게이트)CPU = 교수, Cache Memory = 조교, RAM = 도서관조교는 교수가 다음에 사용할 책을 예상하여 도서관에서 가져온다.반대의 관점 → 조교가 시키지도 않은 일을 하여 교수의 행동이 예측됨. CPU 정보 처리 방식CPU 안에는 레지스터가 있다. CPU는 일을 할 때 임시로 숫자를 레지스터에 적어둔다.각종 프로그램들은 RAM에 자신이 필요한 정보를 적어둔다.캐시는 RAM에 비해서 매우 빠르게 정보를 넣었다 뺐다 할 수 있다. 멜트다운 간단 설명유저 프로그램이 운영체제 권한 영역을 훔쳐보는 취약점100번 방에서 숫자를 꺼낸다.100번 방에서 꺼낸 숫자를 레지스터 al에 임시로 저장한다.al에 저장된 숫자와 1000을 더한다. (여기에서는 109..
기억장치 종류와 역할CPU = 연산 장치, Core(코어)가 연산을 한다.CPU 연산 속도 ↑ = 처리량 ↑ = 성능 ↑클럭 속도 ↑ = Scale Up, 코어의 개수 ↑ = Scale Out, RAM = 연산을 하는 데이터 저장RAM은 CPU에 비해 속도가 느리므로 속도 차이를 극복하기 위해 중간에 Cache memory를 사용한다.CPU가 연산을 하면서 Cache memory에 RAM에서 가져올 다음 정보를 예측하여 복사해온다.CPU: 교수, Cache memory: 조교, RAM: 도서관 → 조교는 교수가 다음에 사용할 책을 예상하여 도서관에서 가져온다. CPU도 당신처럼 예측하고 미리 움직인다코어가 명령 + 데이터를 L1 캐시에서 가져온다.예측은 캐시 메모리에서 발생한다.0에서 99까지 숫자를 ..
DMA 정보 전달 방식기존 정보 전달 방식 = CPU → RAM 영역 1 → RAM 영역 2 → Device 영역 DMA(Direct Memory Access) = 약속된 곳에 Direct로 데이터를 Write → NIC에서 사용DMA 사용한 정보 전달 방식 = CPU → Device 영역 네트워크 상에서 정보 통신 어떤 파일이 있고 그 파일은 커널의 구성요소를 추상화 한다. → 인터페이스그 파일에는 I/O Buffer가 있다. 각 영역에는 I/O Buffer가 존재, I/O Buffer는 일종의 데이터 저장소다. → RAM 메모리 일부TCP/IP 네트워크 통신에서 파일은 Socket이 된다.파일에 대해 Write 한다. = 소켓은 Send 한다.NIC은 DMA를 지원한다.DMA 사용 시 그림1과 같..
인터럽트란?사전적 의미로는 '끼어들다', '중단시키다' 정도의 의미를 가진 말로 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다. 인터럽트의 종류인터럽트의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 나뉠 수 있다. 외부 인터럽트전원 이상 인터럽트(Power fall interrupt): 말 그대로 정전, 파워 이상 등기계 착오 인터럽트(Machine check Interrupt): CPU의 기능적인 오류외부 신호 인터럽트(External Interrupt)- 타이머에 의한 인터럽트: Preemptive 개념을 생각하면 된다. 자원이 할당된 시간이 다 끝난 경우- 키보드로 인터럽..