OS Application Development in WebOS Develop applications in WebOS Recognize the abstract class Application The operating system accepts classes that implement Application, Install the application by calling the install() method Call the uninstall() method ... UImvcOSgwtwebos [OS] 21. Beyond Physical Memory: Mechanisms OS는 Page fault가 발생함에 따라 Page fault handler에 정의된대로 이를 처리(swap in)하는데, 이는 Page table에 해당 페이지가 swap 공간의 어느 위치에 저장되어 있는지 저장해 두었기 때문에 가능한 것이다. 만약 프로세스를 새로 만들거나, 기존의 프로세스가 더 큰 메모리 공간을 요구하는데 메모리에 여유 공간이 남아 있지 않다면 어떤 프로세스의 어떤 페이... OSOS 5. 프로세스 스케줄링 (many short CPU bursts) CPU-bound process (few very long CPU bursts) CPU Scheduler Waiting time(대기 시간) amount of time a process has been waiting in the ready queue ( CPU 사용하기 위해 대기한 시간의 총합) 각 프로세스의 다음번 CPU burst time을 가지... OSOS 4. 프로세스 관리 부모 프로세스가 자식 프로세스 생성 부모와 자식이 모든 자원을 공유하는 모델 자식이 종료될 때까지 부모가 기다리는 모델 fork() 시스템 콜이 새로운 프로세스를 생성 fork 다음에 이어지는 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올림 부모가 종료(exit)하는 경우 운영체제는 부모 프로세스가 종료하는 경우 자식이 더 이상 수행되도록 두지 않는다. → 부모 프로세스의 fo... OSOS 6. 프로세스 동기화 →Solution 1 : 한번에 하나의 CPU만이 커널에 들어갈 수 있게 하는 방법 →Solution 2 : 커널 내부에 있는 각 공유 데이터에 접근할 때마다 그 데이터에 대한 lock / unlock을 하는 방법 공유데이터의 동시 접근(concurrent access)은 데이터의 불일치(inconsistency) 문제를 발생시킬 수 있다. n 개의 프로세스가 공유 데이터를 동시에 사용하기를... OSOS [OS] 5. Interlude: Process API 따라서 case 1, 2를 제외한 나머지 가능한 조건은 rc > 0 밖에 없으므로, 자식 프로세스를 성공적으로 생성한 부모 프로세스가 위의 fork statement 다음으로 도달하게 되는 지점이 바로 이 블럭이 된다(17). 그러니까, 여기서 중요한건 실행 순서가 아니라 fork System call이 호출되면 부모 프로세스의 복제본인 자식 프로세스가 생성되고, 그 실행 흐름은 fork의 ... OSOS [OS] 18. Paging: Introduction 이전처럼 수식만을 사용해서 주소 변환을 수행하는게 아니라, 그냥 Page Table에 저장된 {가상 페이지 번호 <-> 물리 프레임 번호} 정보를 사용해서 각각의 가상 주소를 물리 메모리로 주소 변환한다. 이 VPN과 Offset을 실제 물리 메모리 주소로 주소 변환하기 위해 필요한 것이 바로 Page Table이 되는 것이다. PTE를 그냥 {가상 주소 <-> 물리 주소}의 연결 정보라고 ... OSOS 비동기 병행 실행 복수 개의 프로세스나 쓰레드가 동일한 데이터를 동시에 접근하는 경우, 접근 순서에 따라 실행결과가 달라질 수 있는 상황 두 개이상의 쓰레드가 같은 데이터를 동시에 접근할 때 문제점 동시 접근 가능 데이터에 대한 상호배제적 접근 제어 한번에 하나의 쓰레드만 접근 가능 한번에 하나의 쓰레드만 임계 구역에 머물 수 있음 - 두 개 이상의 쓰레드(또는 프로세스)가 동시에 임계 구역에 있어서는 안됨 ... 운영체제CSOSCS 교착상태와 무기한 연기 자원 경쟁 교착 상태 자원 할당 및 요구 관계 선점 자원 비선점 자원 공유 가능 자원 공유 불가 자원 프로세스가 자원을 사용할 수는 있지만, 자원 할당 스케줄링 정책 때문에 계속 대기해야 하는 상황 운영체제의 편중된 자원 할당 정책 때문에 발생 교착상태 배제 무기한 연기 상태 배제 - 오랫동안 대기한 프로세스가 새로 도착하는 다른 모든 프로세스보다 우선순위가 높아져 먼저 자원 확보 한번에 한... 운영체제CSOSCS 프로세서 스케줄링 선점 스케줄링 어떤 프로세스가 프로세서(CPU) 사용을 위해 경쟁할 수 있는지 결정 선점 스케줄링 우선순위가 낮은 프로세스가 우선순위가 높은 프로세스를 대기시킬 가능성 정적 우선순위 방법에 비해 높은 오버헤드 최단작업 우선 스케줄링 우선순위 스케줄링 각 프로세스에 일정 크기의 CPU 시간 할당 선점 스케줄링 최단시간 우선 스케줄링 대기 시간과 처리 시간을 고려하여 우선순위 결정 도착하는 프로... 운영체제CSOSCS 시스템 메모리 크기 구하기(BIOS) 현재까지의 OS 모습이다. 32비트 보호모드에서 IA-32e(64비트)모드로 넘어갈 준비를 하고 있다. 메모리의 크기를 구하는 코드가 책에서는 직접 접근하여 값을 기록하는 식으로 설명이 되있었는데, 이 방법이 마음에 안들었다. cpu-z 같은 프로그램에서는 메모리가 몇번째 슬롯에 꽃혔는지도 알 수 있는데 이런 방법은 너무 별로라고 생각했다. 바이오스 인터럽트로 구하기 가장 간편한 방법이다. ... 운영체제OSOS 자바스크립트 메모리 상에서 데이터 관리 한 단위 당 표현 가능한 데이터 개수 : 2개 한 단위 당 표현 가능한 데이터 개수 : 4개 한 단위 당 표현 가능한 데이터 개수 : 16개 이처럼 단위 묶음 체계의 비트 수를 늘리면, 데이터 주소의 개수는 줄어들고, 한 단위 당 표현 가능한 데이터의 개수는 늘어난다. 데이터 주소의 개수가 줄어들수록 검색할 대상이 줄어들기 때문에 검색 시간을 줄어들게 된다. 변수 : 변할 수 있는 데이터 그... JavaScriptOSJavaScript 디스크 스케쥴링 이름에서 알 수 있듯이 가장 먼저 도착한 요청을 가장 먼저 처리한다. 현재 위치에서부터 Seek Time이 가장 짧은 요청을 먼저 처리한다. 현재 53부터 거리가 가장 짧은 요청을 먼저 처리하므로, 총 이동 거리는 236 Cylinders이다. 가령, SSTF은 처음에 53번에서 바로 65번으로 이동하는데, 만약 53번에서 37번으로 이동한 후 SSTF를 수행하면 208 Cylinders의 ... 운영체제OSOS 우분투(Ubuntu) 홈서버 구축기(1) - WOL 설정 영상 처리 같은 고스펙의 PC가 필요 없는 비루한 개발자 입장에서 기존에 돌리던 웹서버와 데이터베이스, 도커 등을 무리 없이 돌릴 수 있을 정도의 PC가 필요했다. 이 정도면 내가 원하는 프로그램들은 무리 없이 돌릴 수 있을 듯하다. 인텔 CPU로도 갈 수 있었지만 요즘 라이젠을 쓰고 싶은 마음이 너무 크고 현재 기준 우분투 역시 AMD CPU를 잘 지원해주고 있기 때문에 고민 없이 선택했다... OSHome serverubuntuwolHome server [OSTEP] 페이징 : 더 빠른 변환 만약 존재하면, TLB hit이 되고 TLB가 변환 값을 갖고 있다는 것을 의미합니다. 이제 해당 TLB 항목에서 PFN을 추출할 수 있게 되며, 해당 페이지에 대한 접근 권한 검사가 성공하면 그 정보를 원래 가상 주소의 오프셋과 합쳐서 물리주소를 구성하고 메모리에 접근하게 됩니다. 하드웨어가 변환 정보를 찾기위해 페이지 테이블에 접근하고, 프로세스가 생성한 가상 메모리 참조가 유효하고 접근... tlbPagingOSTEPOSOS
Application Development in WebOS Develop applications in WebOS Recognize the abstract class Application The operating system accepts classes that implement Application, Install the application by calling the install() method Call the uninstall() method ... UImvcOSgwtwebos [OS] 21. Beyond Physical Memory: Mechanisms OS는 Page fault가 발생함에 따라 Page fault handler에 정의된대로 이를 처리(swap in)하는데, 이는 Page table에 해당 페이지가 swap 공간의 어느 위치에 저장되어 있는지 저장해 두었기 때문에 가능한 것이다. 만약 프로세스를 새로 만들거나, 기존의 프로세스가 더 큰 메모리 공간을 요구하는데 메모리에 여유 공간이 남아 있지 않다면 어떤 프로세스의 어떤 페이... OSOS 5. 프로세스 스케줄링 (many short CPU bursts) CPU-bound process (few very long CPU bursts) CPU Scheduler Waiting time(대기 시간) amount of time a process has been waiting in the ready queue ( CPU 사용하기 위해 대기한 시간의 총합) 각 프로세스의 다음번 CPU burst time을 가지... OSOS 4. 프로세스 관리 부모 프로세스가 자식 프로세스 생성 부모와 자식이 모든 자원을 공유하는 모델 자식이 종료될 때까지 부모가 기다리는 모델 fork() 시스템 콜이 새로운 프로세스를 생성 fork 다음에 이어지는 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올림 부모가 종료(exit)하는 경우 운영체제는 부모 프로세스가 종료하는 경우 자식이 더 이상 수행되도록 두지 않는다. → 부모 프로세스의 fo... OSOS 6. 프로세스 동기화 →Solution 1 : 한번에 하나의 CPU만이 커널에 들어갈 수 있게 하는 방법 →Solution 2 : 커널 내부에 있는 각 공유 데이터에 접근할 때마다 그 데이터에 대한 lock / unlock을 하는 방법 공유데이터의 동시 접근(concurrent access)은 데이터의 불일치(inconsistency) 문제를 발생시킬 수 있다. n 개의 프로세스가 공유 데이터를 동시에 사용하기를... OSOS [OS] 5. Interlude: Process API 따라서 case 1, 2를 제외한 나머지 가능한 조건은 rc > 0 밖에 없으므로, 자식 프로세스를 성공적으로 생성한 부모 프로세스가 위의 fork statement 다음으로 도달하게 되는 지점이 바로 이 블럭이 된다(17). 그러니까, 여기서 중요한건 실행 순서가 아니라 fork System call이 호출되면 부모 프로세스의 복제본인 자식 프로세스가 생성되고, 그 실행 흐름은 fork의 ... OSOS [OS] 18. Paging: Introduction 이전처럼 수식만을 사용해서 주소 변환을 수행하는게 아니라, 그냥 Page Table에 저장된 {가상 페이지 번호 <-> 물리 프레임 번호} 정보를 사용해서 각각의 가상 주소를 물리 메모리로 주소 변환한다. 이 VPN과 Offset을 실제 물리 메모리 주소로 주소 변환하기 위해 필요한 것이 바로 Page Table이 되는 것이다. PTE를 그냥 {가상 주소 <-> 물리 주소}의 연결 정보라고 ... OSOS 비동기 병행 실행 복수 개의 프로세스나 쓰레드가 동일한 데이터를 동시에 접근하는 경우, 접근 순서에 따라 실행결과가 달라질 수 있는 상황 두 개이상의 쓰레드가 같은 데이터를 동시에 접근할 때 문제점 동시 접근 가능 데이터에 대한 상호배제적 접근 제어 한번에 하나의 쓰레드만 접근 가능 한번에 하나의 쓰레드만 임계 구역에 머물 수 있음 - 두 개 이상의 쓰레드(또는 프로세스)가 동시에 임계 구역에 있어서는 안됨 ... 운영체제CSOSCS 교착상태와 무기한 연기 자원 경쟁 교착 상태 자원 할당 및 요구 관계 선점 자원 비선점 자원 공유 가능 자원 공유 불가 자원 프로세스가 자원을 사용할 수는 있지만, 자원 할당 스케줄링 정책 때문에 계속 대기해야 하는 상황 운영체제의 편중된 자원 할당 정책 때문에 발생 교착상태 배제 무기한 연기 상태 배제 - 오랫동안 대기한 프로세스가 새로 도착하는 다른 모든 프로세스보다 우선순위가 높아져 먼저 자원 확보 한번에 한... 운영체제CSOSCS 프로세서 스케줄링 선점 스케줄링 어떤 프로세스가 프로세서(CPU) 사용을 위해 경쟁할 수 있는지 결정 선점 스케줄링 우선순위가 낮은 프로세스가 우선순위가 높은 프로세스를 대기시킬 가능성 정적 우선순위 방법에 비해 높은 오버헤드 최단작업 우선 스케줄링 우선순위 스케줄링 각 프로세스에 일정 크기의 CPU 시간 할당 선점 스케줄링 최단시간 우선 스케줄링 대기 시간과 처리 시간을 고려하여 우선순위 결정 도착하는 프로... 운영체제CSOSCS 시스템 메모리 크기 구하기(BIOS) 현재까지의 OS 모습이다. 32비트 보호모드에서 IA-32e(64비트)모드로 넘어갈 준비를 하고 있다. 메모리의 크기를 구하는 코드가 책에서는 직접 접근하여 값을 기록하는 식으로 설명이 되있었는데, 이 방법이 마음에 안들었다. cpu-z 같은 프로그램에서는 메모리가 몇번째 슬롯에 꽃혔는지도 알 수 있는데 이런 방법은 너무 별로라고 생각했다. 바이오스 인터럽트로 구하기 가장 간편한 방법이다. ... 운영체제OSOS 자바스크립트 메모리 상에서 데이터 관리 한 단위 당 표현 가능한 데이터 개수 : 2개 한 단위 당 표현 가능한 데이터 개수 : 4개 한 단위 당 표현 가능한 데이터 개수 : 16개 이처럼 단위 묶음 체계의 비트 수를 늘리면, 데이터 주소의 개수는 줄어들고, 한 단위 당 표현 가능한 데이터의 개수는 늘어난다. 데이터 주소의 개수가 줄어들수록 검색할 대상이 줄어들기 때문에 검색 시간을 줄어들게 된다. 변수 : 변할 수 있는 데이터 그... JavaScriptOSJavaScript 디스크 스케쥴링 이름에서 알 수 있듯이 가장 먼저 도착한 요청을 가장 먼저 처리한다. 현재 위치에서부터 Seek Time이 가장 짧은 요청을 먼저 처리한다. 현재 53부터 거리가 가장 짧은 요청을 먼저 처리하므로, 총 이동 거리는 236 Cylinders이다. 가령, SSTF은 처음에 53번에서 바로 65번으로 이동하는데, 만약 53번에서 37번으로 이동한 후 SSTF를 수행하면 208 Cylinders의 ... 운영체제OSOS 우분투(Ubuntu) 홈서버 구축기(1) - WOL 설정 영상 처리 같은 고스펙의 PC가 필요 없는 비루한 개발자 입장에서 기존에 돌리던 웹서버와 데이터베이스, 도커 등을 무리 없이 돌릴 수 있을 정도의 PC가 필요했다. 이 정도면 내가 원하는 프로그램들은 무리 없이 돌릴 수 있을 듯하다. 인텔 CPU로도 갈 수 있었지만 요즘 라이젠을 쓰고 싶은 마음이 너무 크고 현재 기준 우분투 역시 AMD CPU를 잘 지원해주고 있기 때문에 고민 없이 선택했다... OSHome serverubuntuwolHome server [OSTEP] 페이징 : 더 빠른 변환 만약 존재하면, TLB hit이 되고 TLB가 변환 값을 갖고 있다는 것을 의미합니다. 이제 해당 TLB 항목에서 PFN을 추출할 수 있게 되며, 해당 페이지에 대한 접근 권한 검사가 성공하면 그 정보를 원래 가상 주소의 오프셋과 합쳐서 물리주소를 구성하고 메모리에 접근하게 됩니다. 하드웨어가 변환 정보를 찾기위해 페이지 테이블에 접근하고, 프로세스가 생성한 가상 메모리 참조가 유효하고 접근... tlbPagingOSTEPOSOS