- 운영체제 구조 - 사용자 인터페이스 - 시스템콜 - 커널 - 하드웨어로 구성 → 하드웨어는 운영체제 아님 로우레벨 : 기계가 가깝나, 사람에 가깝나, 파이썬이 하이레벨, 로우레벨 어쎔블리어 - 어느쪽이 로우레벨? → 커널로 갈수록 로우레벨 - 하드웨어부분이 컴퓨터쪽에 가깝다. - 어떤 상황에서 시스템콜이 호출되고 어떤 일을 하는지? - 유저모드 커널모드 → 애매함 - 시스템콜을 호출해서 시스템콜을 처리하는 과정에 사용 - 처리하는 과정이란? - → 잘 모르겠습니다. - 보안과 공유의 장점을 가짐 - 유저 모드에서는 자원에 접근할 수 없음, 커널모드를 바꿔서 자원에 접근해서 유저모드에 사용 - 프로세스 vs 스레드 - 프로세스: 기억장치의 프로그램이 메모리에 올라가서 처리되는 일련의 과정 - 스레드: 프로세스를 이루는 최소한의 단위 - 프로세스의 PCB가 무엇인가요? - 메타데이터가 포함된 데이터 - 프로세스가 처리되기 위한 최소한의 정보가 담긴 상품? - 언제 생성?: 스레드?가 생성될때 ← 프로세스 - 중요성, 왜 필요한지: 출처, 목적지 - 왜 필요한지, 컨텍스트 스위칭 할 떄 ,로드하고 찾아가는 때 필요 - 레지스터 / 캐시 차이점 → 휘발성 추가 - cpu에서 레지스터와 캐시의 차이는 위치상 레지스터가 cpu에 제일 가까움. 레지스터가 캐시보다 데이터가 작고 속도가 제일 빠르다. 제일 비싸다 - 캐시 저장 용량 크고 처리속도 좀 느리고 좀 더 저렴함 > 캐시가 무엇인지 찻아서 정리하기 > - 가상메모리? : 가상의 주소를 만들어서 실제 주소랑 매핑해서 사용, 실제 용량보다 커보이게 - 잘 모르겠음 - 가상 주소를 실제 주소로 변환하는데 사용 - 운영체제에서 필요한 페이지가 없을 떄 페이지 교체가 일어나는데 이때 사용되는 알고리즘 이상한 대답 - 페이지 폴트 현상 ← 램에 존재하지 않는 주소의 정보를 가지고 올때 발생 → 램에 주소는 존재하는데 데이터가 없을 때 - 이를 해결하기 위해 스와핑 - 스와핑의 페이지를 만들거나 페이지 교체 알고리즘 사용 - PFF, 페이지 집합 생성해 데이터 미리 저장 후 교체 이게 진짜 대답 - FIFO, SJF ← 멀티프로세싱 - 웹 브라우저의 캐시 - 쿠키 : 키-값으로, 만료기한이 있는 데이터 형태 - 세션 : 키-값, 만료기한 없음, 클라이언트에서 설정 - 데이터가 임시적으로 저장되는 것으로 알고 있고, - 로컬 스토리지 빼먹음 - 프로세스의 메모리 할당 구조(스택, 힙 등) - 동적할당 - 스택: 데이터가 프로세스가 처리될때마다 데이터가 바로 적재되는 방식 - 힙: 기억이 나지 않습니다. - 정적할당 - 모르겠습니다. - 임계영역 - 공유자원이 다수의 프로세스가 실행될 때 순서 차이로 인해서 결과값이 달라지는 코드 영역을 말한다. - 임계영역을 처리하기 위한 대표적인 방법 - 기억이 안나요.. - 상호배제, 한정대기, 융통성
운영체제 구조
로우레벨 : 기계가 가깝나, 사람에 가깝나, 파이썬이 하이레벨, 로우레벨 어쎔블리어
어느쪽이 로우레벨? → 커널로 갈수록 로우레벨
어떤 상황에서 시스템콜이 호출되고 어떤 일을 하는지?
프로세스 vs 스레드
프로세스의 PCB가 무엇인가요?
레지스터 / 캐시 차이점 → 휘발성 추가
가상메모리? : 가상의 주소를 만들어서 실제 주소랑 매핑해서 사용, 실제 용량보다 커보이게
운영체제에서 필요한 페이지가 없을 떄 페이지 교체가 일어나는데 이때 사용되는 알고리즘
이상한 대답
이게 진짜 대답
웹 브라우저의 캐시
프로세스의 메모리 할당 구조(스택, 힙 등)
임계영역
임계영역을 처리하기 위한 대표적인 방법