일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 참조변수
- jdk
- 도커네트워크
- Compiler
- 42서울
- javac
- Operating System
- JIT
- la-piscine
- RDD
- classloader
- SRP
- abstract
- 42seoul
- 이노베이션아카데미
- LSP
- 바이트코드
- 자바컴파일러
- 라피신
- pg_hba.conf
- JVM
- generics
- MethodArea
- 포함관계
- 제네릭스
- StackArea
- 운영체제
- 상속관계
- HeapArea
- java
- Today
- Total
목록CS/operation system (9)
while(1) 작심삼일();
요구 페이징 : 프로그램의 일부만 가져와 실행하고 사용자가 특정 기능을 요구할 때 해당 모듈을 메모리에 올림으로 써 성능이 향상 됨(캐시의 반대개념) 페이지 부재 : 프로세스가 페이지를 요청하여 페이지 테이블을 통해 확인했을 때, 물리 메모리에 없는 경우. 페이지 교체 알고리즘 : 페이지 부재시 스왑영역에서 메모리의 빈 영역로 올리면 되는데 메모리에 빈 공간이 없는 상황이 생겼을 때 내보낼 페이지를 결정하는 알고리즘 무작위 : 무작위로 스왑 영역으로 내보냄 FIFO : 먼저 메모리에 올라온 순으로 내보냄 2차 기회 : 사용되면 큐의 맨 뒤로 보냄 → 큐에서 꺼내서 맨 뒤로 옮기는 작업도 필요 최적 : 미래의 접근 패턴을 보고 페이지를 내보냄 → 미래 예측 불가하여 구현 불가능 LRU(Least Recen..
가상 메모리 : 크기가 다른 물리메모리에서 일관되게 프로세스를 실행하는 기술. (이론적으로는 2^bit 크기) 동적주소 변환 : MMU가 관리하는 가상 메모리의 크기(물리 메모리 + 스왑영역)을 실제 메모리의 물리 주소로 변환하는 작업 페이지 테이블 : 각 프로세스마다 하나씩 할당되어 있고 운영체제 영역에 포함되어 있음. 가상주소의 각 페이지가 물리 메모리의 어디에 있는지 나타냄. 물리 주소의 영역은 페이지와 구분하기 위해 프레임이라고 함. 페이지 테이블의 크기가 너무 크면 그 만큼 운영체제의 영역이 늘어서 사용자 영역이 줄어들고, 페이지 테이블 또한 스왑영역으로 이동될 수도 있음. 페이징(고정 분할 방식) 주소 변환 : 프로세스 크기와 상관없이 같은 크기로 나뉨. 프로세스가 분산될 수 있음. 관리가 수..
CPU는 메모리 주소 레지스터에 주소를 넣으면 해당 메모리에서 값을 가져오거나 메모리 값을 옮길 수 있음 컴파일러 : 작성한 소스코드를 기계어로 번역한 후 실행 함(메모리 확보) (C,Java 등) 오류 발견 : 변수를 담는 심벌 테이블을 이용하여, 선언하지 않은 변수를 사용하거나, 다른 타입을 담았는지 확인 코드 최적화 인터프리터 : 작성한 소스코드를 한 줄씩 번역하여 실행 (자바스크립트, 베이직, 파이썬 등) 목적 코드 : 컴파일 되어 나오는 코드. 라이브러리와 연결하여 실행 MMU(메모리 관리자) : 메모리로 가져오고, 배치하고, 꽉찼을 때 내보내는 역할을 함 CPU의 비트 == 한번에 다룰 수 있는 데이터 최대 크기 == 레지스터 크기 == 산술논리 연산장치 크기 == 버스 및 대역폭 크기 메모리..
데드락 : 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태. 자원, 공유 변수, 프로그램 등을 사용할 때 발생 자원 할당 그래프 : 프로세스가 어떤 자원을 사용 중이고, 기다리고 있는지 방향성이 있는 그래프 데드락 발생조건 : 4가지를 모두 충족해야 데드락이 발생 상호 배제 : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적 자원이여야 함 비선점 : 한 프로세스가 사용하는 자원은 다른 프로세스가 빼앗을 수 없는 비선점 자원이여야 함 점유와 대기 : 프로세스가 자원을 할당받은 상태에서 다른 자원을 기다리는 상태이여야 함 원형 대기 : 점유와 대기를 하는 프로세스들이 원을 이루어야 함 배타적 자원을 여러 프로세스가 사용하며, 뺏을 수..
프로세스 내 스레드 통신(스레드) : 프로세스 내 2개 이상의 스레드가 존재하는 경우 code, data, heap을 이용 통신 프로세스 간 데이터 통신 : 여러 프로세스끼리 공용 파일 또는 운영체제가 제공하는 파이프를 통한 통신 네트워크를 이용한 데이터 통신 : 여러 컴퓨터가 네트워크로 연결되어 있을경우 소켓을 이용한 통신 양방향 : 일반적 통신, 소켓 반양방향 : 무전기 단방향 : 전역 변수, 파일 대기가 있는 통신(동기화) : 파이프, 소켓 대기가 없는 통신(비동기화) : 전역 변수, 파일 이름 없는 파이프 : 부모-자식 간 프로세스 통신에 이용 이름 있는 파이프 : FIFO라는 특수파일 이용하여 관련없는 프로세스 간 통신에 이용 공유자원 : 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 ..
스케줄링의 목적 : 모든 프로세스가 공평하고 안정적으로 작업하도록 하는 것 공평성 : 모든 프로세스가 자원을 공평하게 받음 효율성 : 자원이 유휴시간없이 스케줄링되고, 유휴 자원을 사용하려는 프로세스에게 우선권을 줌 안정성 : 우선순위를 통해 중요 프로세스가 먼저 작동하도록 배정(ex. 운영체제 프로세스) → 자원을 점유, 파괴하려는 프로세스로부터 보호 확장성 : 프로세스 / 자원이 증가해도 안정적으로 작동 반응시간보장 : 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 함 무한연기방지 : 특정 프로세스의 작업이 무기한 연기되면 안됨(starvation) 스케줄링의 단계 : 현대의 CPU 스케줄러는 대부분 저 수준 ~ 중간 수준 스케줄링으로 구성됨 고수준 스케줄링 : 전체 시스템의 부하를 고려하여 ..