CS/OS 썸네일형 리스트형 Sync,Async / Blocking, Non-Blocking Blocking vs Non-Blocking다른 주체가 작업할 자신의 제어권이 있는지 없는지로 볼 수 있다. Blocking다른 작업(함수) 호출 후 처리가 완료될 때까지 대기 후 자신의 작업 수행Non-Blocking다른 작업(함수) 호출 후 응답을 기다리지 않고 자신의 작업 수행필요에 따라 호출한 함수의 리턴값을 처리하는 콜백함수 존재Synchronous vs Asynchronous결과를 돌려주었을 때 순서와 결과에 관심이 있는지 아닌지로 판단 Synchronous, 동기작업을 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함을 의미작업 완료를 user space에서 판단하고 다음 작업을 언제 요청할지 결정하게 됩니다.모든 I/O 요청-응답 작업이 일련의 순서를 따릅니다. 즉, 작업의 순서가.. 더보기 OS 부팅과정 1. 전원 ON 컴퓨터의 전원을 켜면 메인보드에 전력이 들어온다. (Power ON) 메인보드에 장착된 장치들(CPU, 메모리, 디스크 등)에도 전력 공급 2. ROM에 저장된 BIOS(Basic Input Output System) 펌웨어 실행 ROM(Read Only Memory)에 저장된 BIOS(Basic Input/Output System)를 읽어들여 실행 ROM(Read Only Memory) 이란 주기억장치(메모리)에는 ROM, RAM 두 종류 존재 ROM은 말 그대로 Read-Only Memory이기 때문에 오직 읽기만 가능 ROM에 저장된 데이터들은 비휘발성이기 때문에 전원 공급이 끊겨도 저장된 데이터들이 사라지지 않음 그렇기 떄문에 전원이 없어도 항상 저장되어야 하는 데이터가 저장 BI.. 더보기 address space VS virtual memory VS swap memory address space 컴퓨팅에서 주소 공간(住所 空間)은 물리 메모리나 가상 메모리, 레지스터, 네트워크 호스트, 주변 기기, 디스크 섹터, 다른 논리적 실체나 물리적 실체에 대응되는 주소의 범위를 정의한 공간(집합)을 말한다. 예를들어, 프로세스의 주소 공간은 메모리에 적재된다. 처럼 생각할 수 있다. 주소 공간이 메모리랑 무슨 차이일지 생각했는데, 주소 공간은 개념적으로 주소들의 공간이고, 메모리는 말 그대로 데이터를 담는 곳 virtual(logical) address space VS virtual memory 가상 주소 공간 프로세스가 생성되며 독립적으로 할당받는 주소들로, 다양한 메모리 기법으로 물리적 메모리와 매핑된다. 가상 메모리 멀티 프로그래밍 환경의 효율을 위해 프로세스 메모리가 램뿐.. 더보기 데드락 (DeadLock) 데드락이란? - 둘 이상의 프로세스에서 자기 자원은 놓지 않고(lock) 다른 프로세스가 자원을 내놓기를 바라는 상태 (wait) - 결과적으로 아무것도 완료되지 못해 무기한 기다리게 된다. - '교착 상태'라고도 부름 - 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 데드락이 일어나는 경우 프로세스1과 2가 자원1, 2를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / 프로세스2는 자원1을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 → DeadLock 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황에서 발생할 수 있다. 데드락 발생 .. 더보기 process synchronization(동기화) 동기화 synchronous 프로세스들이 동작은 맞추는 것 작업을 요청 후 결과 값이 나올 때까지 기다리는 것을 의미합니다. ( blocking ) 비동기화 asynchronous 프로세스들이 서로에 대해 모름 작업을 요청 후 결과값이 나올 때까지 기다리지 않고 다음 코드를 실행하는 것을 의미합니다. (non-blocking) 결과 값은 이벤트큐에 넣거나 백그라운드 쓰레드에 위임합니다. 언제 필요할까? 여러 프로세스(쓰레드)가 공유 자원을 동시에 사용할 때 문제가 발생할 수 있습니다. 이러한 상황을 race condition이라고 부르는데, 둘 이상의 프로세스( 또는 쓰레드)가 하나의 데이터에 접근할 때 동기화 되지 않은 상태 따라서, 프로세스를 공유 자원의 접근을 제한하여 문제가 생기지 않게 방지하는 .. 더보기 process vs thread process vs thread process : 운영체제로부터 자원을 할당받은 작업의 단위 thread : 프로세스가 할당받은 자원을 이용하는 실행의 단위 Code : 코드 자체를 구성하는 메모리 영역 ( 프로그램 명령 ) Data (static): 전역변수, 정적변수, 배열 등 ( 초기화된 데이터 ) Heap : 동적 할당 시 사용 ( new(), mallock() 등 ) Stack : 지역변수, 매개변수, 리턴 값 ( 임시 메모리 영역 ) 프로세스 특징 - 프로그램이 메모리에 올라가 수행하는 작업의 단위 - 고유 공간과 자원을 할당받아 사용 - 프로세스의 생성 초기 프로세스는 부팅 시 OS로 받지만, 그 후 부모 프로세스에게서 fork(), exec(),, 와 같은 시스템 콜로 생성됩니다. - 시분.. 더보기 IPC(Inter Process Connection) what IPC 프로세스간에 통신을 의미합니다. 원칙적으로는 프로세스는 독립적이기 때문에 서로의 수행에 영향을 주면 안 됩니다. 하지만, 업무 효율을 위해 프로세스 간에 통신이 필요한 경우가 있습니다. 이를 위해 OS에서 제공하는 것이 IPC입니다. 또한, 의사소통이 제대로 이루어 지기 위해 동기화도 주의해야합니다. when IPC 정보 공유 : 프로세스가 동일한 정보를 필요 할 수 있습니다. 계산 가속화 : 업무를 분할하여 병렬로 계산속도를 높일 수 있습니다. 모듈성 : 기능을 별도의 프로세스(쓰레스)로 나누어 모듈식으로 시스템을 구성할 수 있습니다. 편의성 : 동시에 여러 작업이 가능합니다. ex) 문서 작업, 노래 듣기 등등 병렬로 처리가능합니다. message passing VS shared me.. 더보기 이전 1 다음