개념클래스(Class)ㅡ> 객체를 정의하는 틀ㅡ> 속성(필드) + 동작(메소드) 객체(Object)ㅡ> 클래스로 찍어낸 실체(Instance)ㅡ> 하나의 클래스로 여러개의 객체를 만들 수 있음 생성자(Construct)ㅡ> 객체가 생성될때 자동 실행되는 메소드ㅡ> 주로 초기화 용도예시클래스class Car { String brand; // 필드 (속성) int speed; void drive() { // 메서드 (동작) System.out.println(brand + "가 " + speed + "km/h로 달립니다."); }} 객체public class Main { public static void main(String[] args) { Car my..
DISK Structure■ logical blockㅡ> 논리적 디스크 단위ㅡ> sector와 매핑 ■ Sectorㅡ> 물리적 디스크 단위ㅡ> Sector 0 : 최외곽 실린더, 첫 트랙, 첫 번째, 부팅정보 들어감플래터실린더 : 여러 플래터에서 같은 트랙을 모은 것트랙클러스터섹터Disk Management■ physical formattingㅡ> 물리적 초기화ㅡ> 디스크를 섹터단위로 나누는 것ㅡ> low-level formatting ■ Partitioningㅡ> 하나의 물리적 디스크를 여러개의 파티션(logical disk)으로 분할 ㅡ> OS는 각각의 파티션을 독립적 DISK로 취급 (Logical DISK) ■ Logical formattingㅡ> 논리적 초기화ㅡ> 파일 시스템 설치 ■ Booti..
File and File system■ 메모리ㅡ> 주소를 통해 접근■ 파일ㅡ> 이름을 통해 접근ㅡ> data를 저장하는 목적으로만 쓰는게 아니라, 장치들도 file로 관리한다 (ex. 하드디스크1, 하드디스크2) (device special file) ■ Operation ㅡ> create/delete 파일 생성/삭제ㅡ> read/write 읽기/쓰기ㅡ> reposition (lseek) 파일 포인터를 원하는 위치로 이동 (ex. 특정 바이트부터 읽거나 쓰고 싶을 때)ㅡ> open/close 파일의 metadata를 디스크에서 메모리로 올림 ■ File attribute (metadata)ㅡ> 파일을 관리하기 위한 정보들 ■ File systemㅡ> OS에서 파일을 관리하는 부분Directory a..
여기서부터는 전 챕터의 Paging기법을 사용한다고 가정한다 (실제로도 그럼)Demand Paging■ Demand Pagingㅡ> 프로세스의 페이지를 전부 메모리에 올리는게 아니라ㅡ> 그 페이지가 요청됐을 때만 메모리에 올림 ■ 프로그램은 별에 별 상황에도 이상한 동작을 하지 않도록방어적으로 만들기 때문에,실제로는 거의 사용되지 않는 코드가 많다그래서 메모리에 다 올리면 공간이 낭비된다■ validㅡ> 물리적 메모리에 올라 와 있는 경우 ■ invalidㅡ> 물리적 메모리에 없고 swap area에 내려가있는 경우 ■ G,Hㅡ> 사용하지 않는 주소 영역ㅡ> 테이블에서도 invalidPage Fault■ MMUㅡ> 주소 변환을 하는 하드웨어 ■ Page Faultㅡ> 주소 요청을 했는데, 테이블에서..
인터페이스란?ㅡ> 두 시스템 간의 상호작용을 가능케 하는 경계(boundary) 부분ㅡ> 두 시스템의 접점(경계)에서 상호작용을 돕는 매개체
Logical VS Physical Address ■ 메모리ㅡ> 주소를 통해 접근 ■ 주소ㅡ> 논리적 주소 ▶ CPU가 참조하는 가상의 주소ㅡ> 물리적 주소 ▶ 실제 메모리의 주소 ■ 왜 필요한가ㅡ> 논리적 주소 : 없으면 코드에 지정된 주소가 바로 물리적 주소가 되어, 프로그램간 충돌ㅡ> 물리적 주소 : 없으면 프로그램이 어디에 있는지 못찾음 ■ 주소 바인딩ㅡ> 논리적 주소를 물리적 주소에 연결하는 것 ■ Symbolic Address : 사람이 이해하기 쉽게 기호로 된 주소ㅡ> ex) int x;에서 xㅡ> 컴파일러가 상징주소를 논리주소로 변환해줌주소 바인딩 종류시점에 따른 분류3가지 종류■ (임의로 만든 언어라 여기에 해석을 붙인다)Add A Bㅡ> A와 B를 더해서 A에 저장Jump Cㅡ> C로 ..
DeadLock (교착상태)데드락ㅡ> 서로 상대가 가진 자원을 기다리는 상태 (양보x)ㅡ> 하드웨어 자원, 소프트웨어 자원 프로세스가 자원을 사용하는 절차 4단계ㅡ> Requestㅡ> Allocateㅡ> Useㅡ> Release데드락 발생조건 4가지■ 상호배제ㅡ> 한놈만 사용 가능■ 비선점ㅡ> 강제로 빼앗을 수 없음■ 보유대기ㅡ> 자원을 자발적으로 내려놓지도 않음■ 순환대기ㅡ> 기다리는데 사이클이 형성Resource-Allocate Graph■ Resource-Allocate Graphㅡ> 데드락이 발생했는지 알아보기 위한 그래프 ■ 도형ㅡ> 동그라미 ▶ 프로세스ㅡ> 네모 ▶ 자원ㅡ> 네모안의 점 ▶ 자원의 인스턴스 수 (자원의 수) ■ 화살표ㅡ> 네모에서 동그라미 ▶ 자원 할당된 상태ㅡ> 동그라미에서 ..
Process Synchronization (프로세스 동기화)= Concurrency Control (병행 제어)데이터의 접근컴퓨터 시스템안에서 데이터가 접근되는 패턴 추상화ㅡ> 데이터가 저장된 곳에서 data를 읽어와서 연산하고 다시 원래 위치에 저장 이 패턴때문에 process synchronization 문제가 발생한다.데이터를 읽기만 하면 문제가 없지만, 데이터를 수정하고 다시 저장하기 때문에누가 먼저 읽었냐에 따라 결과가 달라질 수 있다Race Condition왼쪽 오른쪽 박스가 data를 읽어가고각자 연산결과를 저장하면늦게 저장하는쪽의 결과만 저장된다. ■ Race Conditionㅡ> 여러 주체가 하나의 자원에 동시에 접근하려고 함ㅡ> ex) 멀티프로세서, 공유메모리, 시스템콜 등OS에서 r..