컴퓨터과학(CS)/운영체제 (14) 썸네일형 리스트형 가상메모리 정리하고있는데 페이지폴트와 스와핑이 자세히 이해가지 않아서 내일 좀 더 읽어봐야겠다.. 메모리, 캐시 히트, 캐시미스, 웹사이트 캐시 오늘은 메모리에 대한 부분을 읽었다. 그 중에서도 캐시에 대해 자세히 쓰여있었다. 캐시는 자주 사용하는 데이터를 임시 저장하는 것이고 CPU와 메모리 사이의 속도를 조절하여 병목현상을 방지한다. 사실 나도 최근에 캐시때문에 애를 먹은 적이 있다. 개발하던 중, xml 파일을 변경하고 서버를 리스타트 하였는데도 수정사항이 반영되지 않아 한참 고민하다 크롬 캐시를 삭제하고 리로드하니 정상적으로 동작하였다. 물론 그게 웹사이트를 닫아도 남아있던 거 보면 아마,,, 로컬 스토리지이지 않을까 싶다 ㅎ 물론 어디까지나,, 내가 개발하면서 느낀 추측이고 해당 내용이 맞다고 할 수 는 없을 것 같다. https://chat.openai.com/share/c76b93f8-97ca-4fd7-a3a4-0c1e7e3bf39f.. 컴퓨터를 구성하는 것들 인터럽트에 대해 다시 공부하면서 이전에 정리했던 것과 들었던 강의를 다시 보았다. 자세히는 기억 나지 않았지만 살짝 살짝 기억나고 빠르게 들어도 이해가 되었다. 운영체제 기존의 강의를 보고 정리한게 있지만,, 혼자 책을 읽고 배운 내용을 추가로 정리해보았다. https://chat.openai.com/share/5abb500b-331b-48ef-8f73-ba1d9be27229 ChatGPT A conversational AI system that listens, learns, and challenges chat.openai.com 운영체제의 특징은 성능을 향상시키고 편리성을 제공한다는 것이다. 운영체제에서 가장 주요한 작업은 CPU 스케줄링과 프로세스 및 메모리 관리다. 시스템콜은 운영체제가 커널에 접근하기 위한 인터페이스이다. 이러한 시스템콜을 통한 커널모드 진입을 통해 애플리케이션의 자원에 대한 직접적인 진입을 막을 수 있다. 유저모드와 커널모드를 modebit로 구.. 모니터 모니터는 세마포같은 동기화 도구이다. 그러나 세마포보다 고등 동기화 도구로 고수준의 기능을 제공한다. 모니터는 공유 자원, 공유 자원에 접근하는 함수, 2개의 큐로 구성된다. 2개의 큐는 배타 동기를 위한 큐와 조건 동기를 위한 큐이다. 자바의 모든 객체는 모니터가 될 수 있다. Synchronized 키워드를 통해서 사용 따라서 해당 키워드가 붙은 함수들은 공유 자원에 동시에 접근할 수 없다. wait() 조건 동기 큐로 보냄 notify() 조건 동기 큐에서 하나를 꺼냄 notifyall() 조건 동기 큐에서 전부 꺼냄 MMU, 메모리 낭비 방지 MMU MMU는 대표적으로 base 레지스터와 limit 레지스터로 자신의 메모리 영역을 넘어 다른 프로세스나 운영체제 영역을 침범하지 않도록 한다. 뿐만 아니라, relocate 레지스터로 메모리 어디에 올라가도 상관없이 그 위치만큼 값을 조정해준다. 따라서 CPU가 보는 주소는 논리적 주소이고 메인 메모리가 보는 주소는 물리적 주소이다. ex) CPU가 0번 주소로 보고 있어도 재배치 레지스터가 1000을 값으로 가진다면 1000번지로 조정되어 메인메모리에 접근한다. 따라서 CPU는 0번지에 접근한줄 알지만 사실 1000번지에 접근한 것이다. 결과적으로 메인 메모리 어디에 올라가는지는 중요하지 않다. -> 재배치 레지스터가 그 값을 조정해주기 때문 메모리 낭비 방지 동적 적재, 동적 연결, 스와핑 이.. 메모리의 역사 및 개요 메모리는 코어 메모리 -> 진공관 메모리 -> 트랜지스터 메모리 -> 집적 메모리(SRAM, DRAM) 순으로 발전되어져 왔다. 그 중 집적 메모리의 SRAM은 캐시 메모리에 사용되며, DRAM은 HDD에 사용된다. 60년대의 수 KB에서 현재 수 GB만큼 용량이 늘어났다. 하지만 여전히 메모리는 부족하게 느껴진다. 왜냐하면 프로그램 사이즈가 커졌을 뿐만 아니라, 데이터가 더 커졌기 때문이다. 메모리 부족 현상 해결하기 위한 방법으로 메모리 낭비 줄이기와 가상 메모리가 있다. 주소 버스는 단방향이지만 데이터 버스는 양방향이다. 소스 파일 : 고수준언어 혹은 어셈블리 언어 목적 파일 : 컴파일 또는 어셈블 결과 실행 파일 : 링크 결과 printf(), scanf()와 같이 이미 만들어진 코드를 사용하는 .. 프로세스 관리 프로그램 vs 프로세스 = task = job 프로그램은 하드 디스크에 있고 프로세스는 메모리에서 실행중인 프로그램이다. 프로세스의 상태 new -> ready running -> (waitng -> ready) or terminiated ready: 실행준비가 다 되었다, TSS의 경우 I/O를 안만나도 일정 시간이 지나면 running에서 ready로 강제로 스위칭된다. running: CPU가 프로그램을 실행 waiting: I/O을 할 때 혹은 terminated: 프로그램 종료 PCB(Process Control Block) 다른 말로 TCB(Task Control Block)이라 하며 이 안에 프로세스에 대한 모든 정보가 있다. 일정 시간 후 다시 작업하기 위해 기록해두는 것이다. PCB는 O.. 운영체제 서비스 모든 app은 h/w를 사용한다. 이것을 효율적으로 사용하도록 관리해주는 것이 OS이다. 그렇기에 각 하드웨어를 관리하는 OS의 기능 중 주요한 것을 적어보았다. 1. Process management 프로세스는 메모리에서 실행중인 프로그램이다.(Program in execution) 주요 기능 프로세스의 생성, 소멸, 활동 일시 중지, 활동 재개, 통신, 동기화, 교착상태 처리 2. Main memory management 주요 기능 프로세스에게 메모리 공간 할당(allocation) 어느 부분에 어느 프로세스가 할당되었는지 추적 및 감시 프로세스 종료 시 메모리 회수 메모리의 효율적 사용 가상 메모리: 물리적 실제 메모리보다 큰 용량을 갖도록(메인 메모리는 하드 디스크에 비해 매우 작다.) 3. Fi.. 이중모드, 하드웨어 보호 이중모드(dual) 한 컴퓨터를 여러명이 사용하거나 한 사람이 여러 프로그램을 사용할 때 한 사람의 실수가 전체에 영향을 줄 수 있기에 stop, HALT, RESET 등의 명령을 관리자만 가능하게 하는 것이다. 사용자 모드 vs 관리자 모드 = 시스템 모드 = 모니터 모드= 특권 모드 특권 명령(관리자 모드에서만 내릴 수 있음) STOP, HALT, RESET, SET_TIMER, SET_HW 이러한 이중모드를 나타내는 비트를 register에 할당하여 이중모드를 나타낸다. 운영체제 서비스 실행될 때? 관리자 모드 사용자 프로그램 실행될 때? 사용자 모드 하드웨어와 소프트웨어 인터럽트 발생할 때? 관리자 모드 운영체제 서비스가 끝나면? 사용자 모드 swi를 사용하여 하드디스크 접근 지원 요청을 한다. .. 이전 1 2 다음 목록 더보기