728x90
반응형
SMALL

OS/All 5

[OS] 뮤텍스(Mutex) & 세마포어(Semaphore)

뮤텍스와 세마포어의 특징, 차이에 대한 정리임계 영역(Critical Section)함수 내에 둘 이상의 스레드가 동시에 실행하면 문제를 일으키는 하나 이상의 문장으로 묶여있는 코드블록쓰레드 동기화동일한 메모리 영역으로 동시 접근이 발생하는 상황에 필요동일한 메모리 영역에 접근하는 쓰레드의 실행 순서를 지정해야 하는 상황에 필요뮤텍스(Mutex)Mutual Exclution임계영역에 여러 쓰레드의 동시접근을 허용하지 않는 기술동기화 대상이 하나일때 사용하기 두 함수를 통해 임계영역 보호pthread_mutex_lock(pthread_mutex *mutex)pthread_mutex_unlock(pthread_mutex *mutex)pthread_mutex_lock(&mutex);// 임계 영역 시작// ...

OS/All 2023.09.16

[OS] 메모리 구조(stack, heap)

메모리 구조에 대한 정리메모리 구조프로그램의 실행을 위해 제공되는 메모리 공간메인 메모리(RAM)에 할당 1. 코드(code) 영역2. 데이터(data) 영역3. 스택(stack) 영역4. 힙(heap) 영역코드(code)  영역실행할 프로그램의 코드가 저장되는 영역데이터(data)  영역전역변수와 정적(static) 변수가 저장되는 영역*정적변수 : 프로그램이 종료되기 전까지 메모리가 소멸되지 않는 변수스택(stack) 영역함수 호출 정보 저장(지역변수, 매개변수)잠깐 사용하고 삭제하는 데이터 저장용정의된 블록을 벗어날때 소멸됨함수 호출 위치 저장힙 보다 속도가 빠름크기에 제한이 있어 매우 큰 데이터는 저장할 수 없음힙(heap) 영역동적할당 되는 변수 저장직접 할당과 해제 필요(가비지 컬렉터 있을 경..

OS/All 2023.09.08

[OS] 빅 엔디안 & 리틀 엔디안

데이터 저장 방식인 빅 엔디안, 리틀 엔디안에 대한 정리 CPU 데이터 저장방식(Host Byte Order)연속된 바이트를 메모리에 저장할때 어떤 순서로 저장할지 정하는것데이터는 컴퓨터에 Byte 단위로 저장됨 빅 엔디안(Big Endian)상위 바이트 값을 작은 번지수에 저장하는 방식RISC CPU 정수 0x12345678 저장리틀 엔디안(Little Endian)상위 바이트 값을 큰 번지수에 저장하는 방식인텔 CPU 정수 0x12345678 저장 바이트 순서의 문제빅 엔디안 CPU ---- 0x1234 전송 ---->  리틀 엔디안 CPU(0x3412로 해석)=> CPU마다 데이터 저장 순서가 다르기 때문에 데이터를 주고 받을 때 문제 발생 가능 네트워크 바이트 순서(Network Byte Orde..

OS/All 2023.09.05

[ETC] CRLF / LF /CR

Window에서 작업한 파일을 Linux로 옮길때 diff가 발생하는 이유중 하나인 CRLF, LF, CR에대한 정리 (git 업로드시 변경점 발생) CR(Carrige Return) 커서를 맨 앞으로 보내 시작위치로 복귀 \r LF(Line Feed) 커서를 아랫줄로 보내 새로운 행 추가 \n CRLF(Carrige Return Line Feed) 커서를 맨 앞으로 보낸 뒤 아랫줄로 보내 새로운 행 추가 \r\n OS 별 줄바꿈 Linux(UNIX 계열) : LF Windows : CRLF 변경 방법 Visual Studio Code 하단의 줄바꿈 옵션 클릭 LF, CRLF 중 선택시 일괄 변경

OS/All 2023.07.21

[OS] 프로세스(Process)/스레드(Thread)

Process와 Thread에 대한 정리(+멀티프로세스, 멀티스레드) Process운영체제로 부터 시스템 자원을 할당받는 작업의 단위 * 시스템 자원 : 독립된 메모리 영역(Code, Data, Stack, Heap)기본적으로 1개의 스레드 보유각 프로세스는 별도의 주소공간에서 실행되고 프로세스간 변수, 자료구조에 접근할 수 없음다른 프로세스의 자원에 접근하려면 프로세스간 통신필요 Thread프로세스가 할당받은 자원을 이용하는 실행의 단위스레드는 프로세스내에서 각각 Stack만 따로 할당 받고, 나머지 자원 공유각각의 스레드는 레지스터, 힙을 별도로 보유하고 힙 메모리를 서로 읽고 쓸 수 있음컨텍스트 스위칭(Context Switching)CPU에서 여러 프로세스를 돌아가며 작업을 처리하는 과정CPU가 ..

OS/All 2023.06.25
728x90
반응형
LIST