일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jvm이란
- 안드로이드 라이선스
- ANR이란
- 객체
- 2022 플러터 안드로이드 스튜디오
- 서비스 쓰레드 차이
- 서비스 vs 쓰레드
- rxjava hot observable
- 자바 다형성
- 스택 큐 차이
- 안드로이드 유닛테스트란
- 플러터 설치 2022
- 안드로이드 유닛 테스트 예시
- 큐 자바 코드
- Rxjava Observable
- 안드로이드 레트로핏 사용법
- android retrofit login
- 안드로이드 os 구조
- 안드로이드 레트로핏 crud
- 2022 플러터 설치
- 클래스
- 안드로이드 라이선스 종류
- ar vr 차이
- jvm 작동 원리
- 안드로이드 유닛 테스트
- rxjava disposable
- android ar 개발
- 멤버변수
- 스택 자바 코드
- rxjava cold observable
- Today
- Total
목록책/혼자 공부하는 컴퓨터 구조 + 운영체제 (15)
나만을 위한 블로그
파일과 디렉터리 파일 하드디스크, SSD 같은 보조기억장치에 저장된 관련 정보의 집합 속성 or 메타데이터 : 파일 관련 부가 정보 확장자 : 파일 유형을 알리는 데 흔히 쓰이는 방식 디렉터리 파일을 관리하기 위해 쓸 수 있는 것. 윈도우 OS에선 디렉터리를 폴더라고 함 1단계 디렉터리 : 모든 파일이 하나의 디렉터리 아래에 있는 것 트리 구조 디렉터리 : 1단계 디렉터리로 많은 파일을 관리하기 어렵고 컴퓨터 용량이 커져 저장 가능한 파일이 많아져서 생겨남. 절대 경로, 상대 경로 절대 경로 : 루트 디렉터리에서 자신까지 이르는 고유 경로 상대 경로 : 현재 디렉터리부터 시작하는 경로 파일 시스템 파티셔닝, 포매팅 저장 장치의 논리 영역을 구획하는 작업 보조기억장치를 쓰려면 파티션을 나누는 파티셔닝, 포..
연속 메모리 할당 스와핑 메모리상의 빈 공간에 다른 프로세스를 올려서 실행하는 방식 스왑 영역 : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역 스왑 아웃 : 지금 실행중이 아닌 프로세스가 메모리에서 스왑 영역으로 이동하는 것 스왑 인 : 스왑 영역의 프로세스가 다시 메모리로 이동하는 것 스와핑을 쓰면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 커도 프로세스들을 동시 실행 가능 메모리 할당 빈 메모리 공간에 프로세스를 연속 할당하는 방식 최초 적합 : OS가 메모리 안의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 찾으면 그곳에 프로세스 배치 최적 적합 : OS가 빈 공간을 모두 검색하고 프로세스가 적재될 수 있는 가장 작은 곳에 프로세스 배치 최악 적합 : OS가 빈 ..
식사하는 철학자 문제 교착 상태를 설명하기 위한 고전적인 문제 상황. 교착 상태가 어떤 상황에서 왜 발생하고 어떻게 해결 가능한지 볼 수 있는 시나리오 둥근 원탁에 철학자 5명이 앉아 있고 앞에 식사가 있음. 식사는 포크 2개로 먹을 수 있는 음식일 때 철학자들은 아래 순서로 식사를 함 계속 생각하다가 왼쪽 포크를 쓸 수 있으면 집어듬 계속 생각하다가 오른쪽 포크를 쓸 수 있으면 집어듬 왼쪽, 오른쪽 포크를 모두 들면 정해진 시간 동안 식사 식사가 끝나면 오른쪽 포크를 내려놓음 오른쪽 포크를 내려놓고 왼쪽 포크 내려놓음 다시 1부터 반복 모든 철학자가 동시에 포크를 집으면 어떤 철학자도 식사할 수 없고 영원히 생각만 해야 할 수 있다 이렇게 일어나지 않을 사건을 기다리며 진행이 멈추는 현상을 교착 상태라..
동기화의 의미 동기화 : 특정 자원에 접근할 때 1개의 프로세스만 접근하게 하거나 프로세스를 올바른 순서대로 실행하게 하는 것 프로세스 동기화 : 프로세스 사이의 수행 시기를 맞추는 것. 크게 2가지를 말함 실행 순서 제어 : 프로세스를 올바른 순서대로 실행 상호 배재 : 동시 접근해선 안 되는 자원에 하나의 프로세스만 접근하게 설정 상호 배제는 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘을 말하기도 한다 생산자와 소비자 문제 상호 배제를 위한 동기화와 관련된 고전적이고 유명한 문제 물건을 계속 생산하는 프로세스인 생산자, 소비하는 프로세스인 소비자가 있고, 둘이 "총합"이란 데이터를 공유할 때 생산자는 버퍼에 물건을 넣고 총합에 해당하는 변수를 1 증가시키고, 소비자는 버퍼에서 물건..
CPU 스케줄링 개요 프로세스 우선순위 대부분의 프로세스들은 CPU, 입출력장치를 모두 사용하며 실행된다. 프로세스는 실행 상태, 대기 상태를 반복하며 실행된다 프로세스 종류마다 입출력장치 이용 시간, CPU 이용 시간의 양에는 차이가 있다. 비디오 재생, 디스크 백업 작업 담당 프로세스같이 입출력 작업이 많은 프로세스(입출력 집중 프로세스)도 있고 CPU 작업이 많은 프로세스(CPU 집중 프로세스)도 있다 입출력 집중 프로세스는 실행 상태보다 입출력을 위한 대기 상태에 더 많이 머무르고 CPU 집중 프로세스는 실행 상태에 더 많이 머무름 상황과 프로세스 중요도에 맞게 프로세스가 CPU를 쓸 수 있게 하기 위해 OS는 프로세스마다 우선순위를 부여 OS는 각 프로세스의 PCB에 우선순위를 명시하고 PCB의..
프로세스 개요 포그라운드 프로세스 : 유저가 보는 앞에서 실행되는 프로세스 백그라운드 프로세스 : 유저가 보지 못하는 뒤에서 실행되는 프로세스. 유저와 상호작용 가능한 프로세스도 있지만 상호작용 없이 작동하는 프로세스도 있음 상호작용 없이 작동하는 백그라운드 프로세스 : 유닉스에선 데몬, 윈도우에선 서비스라 부름 프로세스 제어 블록 모든 프로세스는 실행에 CPU가 필요하지만 CPU 자원은 한정돼 있다. 즉 모든 프로세스가 CPU를 동시에 사용할 순 없다 자기 차례가 되면 정해진 시간만큼 CPU를 쓰고, 끝남을 알리는 타이머 인터럽트가 발생하면 자기 차례를 양보하고 다음 차례가 올 때까지 기다림 OS는 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고 프로세스에 CPU 등 자원을 분배 -> 이걸 위해..
운영체제를 알아야 하는 이유 운영체제란 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되게 돕는 프로그램 운영체제도 프로그램이라 메모리에 적재돼야 함. 운영체제는 특별한 프로그램이라 항상 컴퓨터가 부팅될 때 메모리 안의 커널 영역에 따로 적재돼 실행됨. 이 영역을 제외한 나머지는 사용자가 쓰는 응용 프로그램이 적재되는 영역이라 사용자 영역이라 부름 운영체제는 실행할 프로그램을 메모리에 적재하고 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리함 운영체제의 큰 그림 커널 운영체제의 핵심 서비스를 담당하는 부분 운영체제가 설치된 모든 기기에는 커널이 있음. 어떤 커널을 쓰냐에 따라 프로그램이 하드웨어를 쓰는 양상이 달라지고 컴퓨터 성능도 달라질 수 있음 사용자 인터..
입출력장치는 CPU, 메모리보다 다루기가 까다롭다. 이유는 입출력장치 종류가 너무 많음. 그래서 장치마다 속도, 데이터 전송 형식도 다양해서 정보 주고받는 방식 규격화가 어려움 일반적으로 CPU, 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮음 그래서 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러 하드웨어로 연결됨. 장치 컨트롤러는 입출력 제어기, 입출력 모듈 등으로도 불림 장치 컨트롤러는 아래 역할을 통해 위 문제들을 해결함 CPU, 입출력장치 간의 통신 중개 오류 검출 데이터 버퍼링 버퍼링 : 전송률이 높은 장치, 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장해서 전송률을 비슷하게 맞추는 방법 장치 컨트롤러에서 기억해야 할 것 : 데이터 레지스터, 상태..
다양한 보조기억장치 하드 디스크 자기적인 방식으로 데이터를 저장하는 보조기억장치. 자기 디스크의 일종 실질적으로 데이터가 저장되는 곳 = 둥근 원판(플래터) 플래터를 회전시키는 구성요소 = 스핀들 스핀들이 플래터를 돌리는 속도 = RPM. RPM이 15,000이면 하드디스크는 분당 15,000바퀴를 회전함 플래터를 대상으로 데이터를 읽고 쓰는 구성요소 = 헤드. 플래터 위에서 미세하게 뜬 채로 데이터를 읽고 쓰는 바늘같은 부품. 원하는 위치로 헤드를 이동시키는 디스크 암에 부착돼 있음 플래터는 트랙, 섹터라는 단위로 데이터를 저장함 실린더 : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위 하드디스크가 데이터에 접근하는 시간 = 탐색 시간, 회전 지연, 전송 시간 탐색 시간 :..
RAM의 특징, 종류 RAM의 특징 실행할 프로그램의 명령어, 데이터가 저장됨. 전원을 끄면 RAM에 저장된 것들이 모두 날아감 전원을 끄면 저장된 내용이 사라지는 저장장치 : 휘발성 저장 장치 전원이 꺼져도 저장된 내용이 유지되는 저장장치 : 비휘발성 저장 장치 (HDD, SSD, CD-ROM, USB 등) 보조기억장치는 전원을 꺼도 내용을 유지하지만 CPU는 보조기억장치에 직접 접근할 수 없음 그래서 일반적으로 비휘발성 저장 장치에는 보관할 대상을 저장하고, 휘발성 저장장치에는 실행할 대상을 저장함 CPU는 실행하려는 프로그램이 보조기억장치에 있다면 RAM으로 복사해서 저장한 뒤 실행 RAM의 용량, 성능 RAM 용량이 적으면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다..