일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Til
- 스택
- redux
- UI
- React
- 프로그래머스
- 해시테이블
- 카카오
- web
- javascript
- mysemester
- 백준
- useState
- 생활코딩
- superstarjypnation
- REST_API
- vercel
- 운영체제
- Next.js
- 자바스크립트
- UX
- level1
- CSS
- 30daysdowoonchallenge
- 자료구조
- 회고
- html
- 코드스테이츠
- 프로토타입
- 큐
- Today
- Total
목록운영체제 (8)
데굴데굴

Allocation of File Data in Disk Contiguous Allocation 연속 할당 하나의 파일이 디스크 상에 연속되어 저장되는 방식 ex) 블록의 크기가 6개인 파일이 있을 때 19번 블록이 시작점이라고 한다면 24번 블록까지 연속적으로 차지한다 단점 블록의 크기가 균일하지 않기 때문에 외부 조각이 발생할 수 있다 file grow가 어렵다 file 생성 시 얼마나 큰 hole을 배당할 것인가? grow 가능 vs 낭비 (내부 조각 발생) 장점 i/o 작업이 빠르다 하드디스크의 접근 시간은 대부분 헤드 이동의 오버헤드임 한 번의 seek/rotation으로 많은 바이트를 전달할 수 있다 process의 swap area로도 사용 가능 direct access(=random acc..

Demand Paging 실제로 필요할 때 page를 메모리에 올리는 것 이점 i/o 양의 감소 메모리 사용량 감소 빠른 응답 시간 더 많은 사용자 수용 가능 valid/invalid bit의 사용 invalid: 해당 페이지가 물리적 메모리에 없음 or 사용되지 않는 주소 영역임 처음에 모든 page entry는 invalid로 초기화됨 주소 변환 시 invalid bit으로 설정되어 있다면 page fault가 발생했다고 말한다 -> 일종의 software interrupt Page Fault invalid page로 접근하면 [[8강 메모리 관리 - 1#MMU (Memory-Management Unit)|MMU]]가 trap을 발생시킴 (page fault trap) kernel mode로 들어가 ..

CPU만 쓰는 단계 - CPU burst I/O만 하는 단계 - I/O burst I/O-bound process (many short CPU bursts) - 계산 시간보다 I/O에 많은 시간이 필요한 job CPU-bound process (few very long CPU bursts) - 계산 위주의 job CPU-burst time의 분포를 확인하니 CPU만 오랫동안 쓰는 빈도보다 짧은 간격으로 I/O 작업을 수행하는 빈도가 높았다. I/O는 유저와 직접적인 상호작용을 하는 작업. 더 좋은 사용자 경험을 제공하기 위해 interactive job에게 더 우선적으로 CPU를 제공해야 한다 스케줄러 & 디스패처 둘은 전부 운영체제 안의 코드이다. CPU Scheduler - Ready 상태의 프로세스..

프로세스는 저절로 생기지 않음 시스템 부팅 후 최초의 프로세스는 운영체제가 생성하지만 그 이후부터는 다른 프로세스를 복제 생성함으로써 생겨난다. 부모 프로세스가 자식 프로세스를 생성하여 부모 프로세스를 기준으로 하나의 트리 구조가 형성된다 부모 프로세스와 자식 프로세스가 자원을 공유하는 모델도 있고, 일부를 공유하거나 전혀 공유하지 않는 모델도 있다. (공유하지 않는 모델이 일반적) 프로세스와 관련된 시스템 콜 명령어 fork() - 복제 생성 (자식 프로세스는 부모의 공간과 문맥을 그대로 복사하여 생성됨) exec() - 한 프로세스에서 시스템 콜을 통해 다른 프로그램을 실행시키는 명령어 exit() - 프로세스가 마지막 명령을 수행한 후 운영체제에게 알려줌 wait() - 자식 프로세스가 부모 프로세..

프로세스 실행 중인 프로그램 (program in execution) 프로세스 문맥 (process context) 프로세스가 어떤 상태에서 수행되고 있는지 정확하게 규명하기 위해 필요한 정보 하드웨어 문맥 CPU의 수행 상태를 나타내는 것 프로그램 카운터 값, 각종 레지스터에 저장하고 있는 값 프로세스의 주소 공간 커널상의 문맥 - PCB, 커널 스택 프로세스의 상태 Running - instruction 수행 중 Ready - CPU 사용을 위해 대기 중인 상태 (메모리에 올라와 있음, cpu만 얻으면 바로 작업을 수행할 수 있는 상태) Blocked (wait, sleep) - cpu를 줘도 당장 instruction을 실행할 수 없는 상태, ex) i/o 작업을 완료해야 할 수 있는 작업 susp..
반효경 교수님의 KOCW 강의 '운영체제'와 저서 '운영체제와 정보기술의 원리'를 학습하며 정리한 글입니다. 프로그램 구조와 인터셉트 프로그램이 명령을 수행하려면 명령을 담은 프로그램의 주소 영역이 메모리에 올라가 있어야 함. 프로그램의 주소 영역 코드: 작성한 프로그램 함수들의 코드가 cpu에서 수행할 수 있는 기계어 명령 형태로 저장됨 데이터: 전역 변수 등 프로그램이 사용하는 데이터를 저장 스택: 함수가 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장 메인 함수에서 실행 시작 다른 함수 호출 새 함수의 위치로 점프하여 함수 실행 원래 호출했던 함수 위치로 되돌아옴 컴퓨터 시스템의 작동 개요 CPU는 매 시점 메모리의 특정 주소에 존재하는 명령을 읽어와 그대로 실행 프로그램 카운터: cpu가 수행..

반효경 교수님의 KOCW 강의 '운영체제'와 저서 '운영체제와 정보기술의 원리'를 학습하며 정리한 글입니다. 컴퓨터 시스템의 구조 컴퓨터 = 내부 장치(CPU, 메모리) + 외부 장치(디스크, 키보드, 마우스, 모니터, 네트워크 장치) 컴퓨터 내부로 데이터가 들어오는 것 = input 외부로 데이터가 나가는 것 = output 각 하드웨어 장치에는 이들을 제어하는 일종의 작은 CPU인 컨트롤러가 붙어있음 운영체제의 코드를 전부 메모리에 상주시키면 메모리가 낭비됨 -> 핵심적인 부분만 올려놓음 (=커널) CPU 안에는 레지스터, mode bit, interrupt line이 있음 레지스터: CPU 내부의 임시 기억 장치, 새 명령을 수행할 때마다 초기화됨. mode bit: 사용자 프로그램의 잘못된 수행으..
반효경 교수님의 KOCW 강의 '운영체제'와 저서 '운영체제와 정보기술의 원리'를 학습하며 정리한 글입니다. 운영체제의 정의 운영체제(operating system): 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어 하드웨어를 동작시키기 위한 기본적인 소프트웨어 하드웨어 위에 운영체제를 설치해 사용자가 컴퓨터를 사용할 수 있는 상태로 만들어주는 것 좁은 의미의 운영체제: 메모리에 항상 상주하고 있는 운영체제의 부분 = 커널 kernel 넓은 의미의 운영체제: 커널 뿐만 아니라 운영체제의 다른 유틸리티도 포함 이런 유틸리티들은 메모리에 상주하지 않는 독립적인 소프트웨어이지만 운영체제에 함께 설치되어 운영체제로 간주하기도 한다. 강의에서 앞으로 언급할 운영체제는 좁은 의미의 운영체제 운영체제의 기능 두 가지..