본문 바로가기
728x90

개발공부 개발새발127

OS ) 파일 시스템 File System 파일 시스템파일 개념저장장치의 물리적 특성을 추상화한 논리적 저장 단위, 보조저장장치에 기록된 정보의 집합.자료가 파일 안에 존재해야만 보조저장장치에 기록될 수 있음.프로그램자료UNIX, Linux 및 기타 운영체제는 시스템 정보(프로세스 세부 사항)에 대한 엑세스를 제공하기 위해 파일 시스템 인터페이스를 사용한다(proc)파일 유형텍스트 파일행과 페이지로 구성되는 연속된 문자.소스 파일선언과 실행문으로 구성된 함수들의 연속.실행 파일로더가 메모리로 가져와 실행시킬 수 있는 연속된 코드 부분.파일 속성사용자 편의를 위해 파일에 이름을 부여하고 그 이름으로 파일을 참조한다. 파일이 일단 만들어지면, 그 파일을 생성한 프로세스, 사용자, 시스템으로부터 독립하며 개별적으로 변경될 수 있다.이름식별자 (우리가 .. 2025. 4. 8.
OS ) 메인 메모리 - 2편 : 페이징, 34/64비트, ARM 페이징프로세스의 물리 주소 공간이 연속되지 않아도 되는 메모리 관리 기법!페이징 기본 방법물리 메모리 → 같은 크기 블록인 프레임(Fram)논리 메모리 → 같은 크기 블록인 페이지(Page)→ 논리 주소와 물리 주소가 완전히 분리되어, 물리 메모리 크기보다 더 큰 논리 주소 공간을 사용할 수 있다?!!물리 주소CPU로 부터 나오는 모든 페이지 주소는 페이지 번호, 페이지 오프셋이다.페이지 번호(p)물리 메모리 각 프레임의 시작 주소.물리 메모리에서 “몇 번째 페이지에 해당하는가?”예) 메모리의 2번째 페이지 → 페이지 번호 = 2페이지 오프셋(d: offset)참조되는 프레임 안에서의 위치.해당 페이지 안에서의 정확한 데이터 위치.예) 페이지 크기가 4KB(2^12 바이트) 라면, 오프셋 범위는 0부터 .. 2025. 2. 15.
OS ) 메인 메모리 - 1편 기본 하드웨어CPU 가 직접 접근할 수 있는 유일한 범용 저장 장치는?메인 메모리레지스터→ 따라서 모든 실행되는 명령어와 데이터들은 CPU 가 직접 접근 가능한 메인 메모리와 레지스터에 있어야 함. → 데이터가 메모리에 없다면 일단 메모리로 이동시켜야 함.레지스터CPU 클록(Clock)의 1사이클 내에 접근 가능.일부 처리 코어들은 레지스터에 있는 명령어 해독과 간단한 연산을 클록 틱 하나, 또는 그 이상의 속도로 처리함.메인 메모리메인 메모리는 레지스터와 다르다.메인 메모리에 접근을 하기 위해서는 많은 CPU 클록 틱 사이클이 소요된다.메인 메모리가 레지스터 보다 코어랑 더 머니까요?이 경우 CPU 가 필요한 데이터가 없어서 명령어를 수행 못하고 지연되는(스톨 stall) 상황이 발생하게 된다.해결법 .. 2025. 2. 14.
OS ) 교착 상태 DeadLocks 교착 상태대기 중인 스레드들이 대기 상태에서 변경이 어려울 때그들이 요청한 자원이 다른 스레드들에 의해 점유되어 있고, 그들도 다 대기 상태에 있기 때문에예) 두 기차가 교차로에서 서로 접근할 때는, 둘 다 완전히 정지해야 하고 상대방이 없어지지 않는 한 누구도 다시 출발할 수 없음..시스템 모델Mutex 락과 세마포도 자원이며, 가장 일반적인 교착상태의 발원지 이다.락은 일반적으로 특정 자료구조와 연관되어 있다. (Queue And LinkedList)큐에 대한 엑세스를 보호하고 연결 리스트에 대한 엑세스를 보호한다.그래서 고유한 자원이 할당 됨.스레드와 락스레드는 자원을 사용하기 전에 반드시 요청해야 하고, 사용 후에는 반드시 방출해야 한다.요청된 자원의 수가 시스템에서 사용 가능한 전체 자원의 수를.. 2025. 1. 23.
OS ) 동기화 도구 -> 락 (Mutex, 세마포) 프로세스가 병렬, 병행 실행될 때의 문제 상황프로세스는 “메모리”에서 “레지스터”로 데이터를 가져오고, “레지스터”에서 “메모리”로 다시 적재된다.예시병행 실행되는 프로세스 p1 과 p2 가 있다.두 프로세스 모두 공유 변수 count = 5 를 레지스터로 가져와 사용해야 한다.같은 메모리 주소에 있는 공유 변수를 프로세스가 점유하고 있는 각 코어의 레지스터로 가져온다.p1 은 count++ , p2 는 count— 를 실행한다.p1 은 count = 6 , p2 는 count = 4 로 연산하여 메모리에 적재 하려고 한다.이 경우 p1 이 먼저 작업을 끝내고 6으로 메모리를 업로드해도, 그 뒤에 실행된 p2 가 count=4 를 적재하면 p1이 계산한 기대값과 다른 상황이 발생한다.→ 이 상황을 경쟁 .. 2025. 1. 21.
OS ) 스레드 Thread 스레드 Thread 구성스레드 IDPC레지스터 집합스택→ 스레드는 고유의 레지스터, 스택, 프로그램카운터를 가지고 있다.멀티스레드 웹 서버 구조웹 서버가 다중 스레드화 되면, 서버는 클라이언트의 요청을 listen 하는 별도의 스레드를 생성한다.요청이 들어오면 다른 프로세스를 생성하는 게 아니라, 요청을 서비스 할 새로운 스레드를 생성 → 또는 스레드 풀에서 스레드 할당하여 요청 위임.listen 하는 스레드는 요청을 listen 하는 작업을 재개한다.노드랑은 다름노드는 메인 스레드가 요청을 수신하긴 하지만 I/O 를 Non-Blocking 한다.스레드 모델은 스레드를 사용해서 Blocking 처리 해도 상관 없음.(어차피 요청 받는 애랑 실행하는 애랑 따로니까)→ 설계 철학 자체가 다름.그럼 스프링도 .. 2025. 1. 15.
728x90