전체 글147 [운영체제] Memory Management 주소 논리적 주소 프로세스마다 독립적으로 가지는 주소 0번지 부터 cpu가 보는 주소 물리적 주소 메모리에 실제 올라가는 위치 주소 바인딩: 주소 결정 주소바인딩 컴파일 타임 바인딩: 컴파일 시에 주소 바인딩 로드 타임 바인딩: 실행 시작될 때 주소변환 excution 타임 바인딩: (런타임) 프로그램 시작된 이후 중간에, 하드웨어 지원 필요 memory management unit 논리주소 -> 주소변환 -> 물리주소 Dynamic loading 해당 루틴 불려질 때 메모리에 load하는 것 memory utilization 향상 프로그램 자체에서 구현 가능 overlays 메모리에 프로세스 부분 중 실제 필요한 정보만 올림 사용자가 구현 swapping 프로세스 일시적으로 메모리에서 backing s.. 2022. 5. 6. [운영체제] Deadlocks Deadlock 프로세스들이 서로가 가진 자원 기다리며 block된 상태 자원: 하드웨어, 소프트웨어 (요청,획득,사용,반납) Deadlock 발생조건 상호 배제: 하나의 프로세스만 자원 사용 비선점: 빼앗기지 않음 보유대기: 기다릴 때 보유자원 놓지 않음 순환대기: 사이클 형성 처리방법 prevention: Deadlock 발생조건 중 하나라도 만족되지 않도록 프로세스 시작 시 모든자원 할당 기다릴 때 보유자원 모두 놓기 빼앗기(cpu,memory) 자원 순서 Avoidance: 부가 정보 이용 deadlock 안전한지 조사해서 할당, 최대 사용량 미리 선언 Deadlock Detection and recovery Deadlock발생 허용 Detection루틴을 두고 deadlock 발견시 recove.. 2022. 5. 3. [운영체제] Process Synchronization 프로세스 동기화 race condition 발생 커널 수행 중 인터럽트 발생시 프로세스가 시스템 콜하여 커널모드 수행중에 context switch multiprocessor에서 shared memory 내의 kernel data process synchronization 문제 공유데이터 동시접근시 데이터 불일치 일관성 유지-실행순서 정하는 메커니즘 필요 Race condition: 여러 프로세스 동시에 공유데이터 접근 데이터 최종 연산 결과 마지막 프로세스에 따라 달라짐 race condition 방지:concurrent process 동기화 되어야함 critical section 문제 n개의 프로세스가 공유 데이터를 동시 사용하기 원하는 경우 각 프로세스 code segment에 공유데이터 접근 코드.. 2022. 5. 1. [운영체제] CPU Scheduling Schdulig Criteria(성능 척도) 시스템 입장: 이용률(놀지않고 일한 시간-주방장), 처리량(몇개의 일을 처리했냐-손님몇명) 프로그램 입장: 소요시간(기다린+실행-코스요리), 대기시간(총 기다린 시간-밥먹은 시간 뺀 시간), 응답 시간(최초의 cpu얻은 시간-첫번째 음식) FCFS(first come first served): 먼저 온 고객 먼저(비선점형) convoy effect : 긴 프로세스 뒤에 짧은 프로세스 오는 것 SJF(shortest jop first): cpu burst time 가장 짧은 프로세스 제일 먼저 스케줄 nonpreemptive: cpu잡으면 완료될 때까지 선점당하지 않음 preemptive: 남은 burst time보다 더짧은 cpu burst time 갖는 프로.. 2022. 4. 28. [운영체제] Process Management - 프로세스 생성 부모 프로세스가 자식 프로세스 생성 트리(계층 구조) 형성 자원필요: 운영체제로부터 받음/ 부모와 공유/ 공유하지 않는 모델 일반적 수행: 공존/자식 종료될 때까지 기다림 주소공간: 부모 공간을 복사(fork())-> 그 공간에 새로운 프로그램 올림(exec()) - 프로세스 종료 프로세스 마지막 명령 수행 후 운영체제에게 알림(exit) - 자식이 부모에게 output data보냄(wait), 자원 운영체제에게 반납 부모 프로세스가 자식 수행 종료(abort) - 자식 자원 한계치 넘을때, 태스크 필요없을 때, 부모 종료될 때 - fork() 시스템콜 자식 fork() 이후부터 실행, return 값 달라서 구별가능 - exec() 시스템콜 새로운 프로그램 올린다. 다시 돌아오지 못해.. 2022. 4. 25. [운영체제] Process - 프로세스: 실행중인 프로그램 - 프로세스 문맥 cpu 수행 상태 나타내는 하드웨어 문맥(프로그램 카운터, 레지스터) 프로세스 주소공간(코드,데이터, 스택) 프로세스 관련 커널 자료구조(process control block,커널스택) - 프로세스 상태 running: cpu 잡고 instruction 수행중 ready: cpu 기다리는 상태 blocked: cpu를 주어도 당장 instruction 수행불가/디스크에서 파일 읽어오는 경우 suspended: 외부적 이유로 프로세스 수행 정지, 프로세스 통째로 디스크에 swap out - pcb: 운영체제가 각 프로세스 관리하기 위해 프로세스 당 유지하는 정보 구성요소: os가 관리상 사용하는 정보, cpu 수행 관련 하드웨어 값, 메모리관련, 파일관련.. 2022. 4. 23. [책] 성공하는 프로그래밍 공부법 오늘 오픈카톡 개발자 취업 공고방의 우테캠 모집글에서 교육담당을 해주시는 분들의 글을 보게되었다. 백엔드 교육 담당 정호영님 : 지식의 저주를 극복하기 안드로이드 교육 담당 배인진님 : 개발자가 되기 위한 현실적인 학습 방법 정호영님의 글에서 프로그래밍 공부법책을 발견 했고 지금 나한테 필요한 책인 것 같아서 읽게 되었다. 책을 읽어보니 지금 내가 겪고있는 상황이 그대로 쓰여있었다. 완전 공감되었던 내용을 정리하자면 따라하기 수준의 경험을 끝낸 후 자신이 생각했던 소프트웨어를 만들려고 하는 순간 어디서 어떻게 시작할지 막막함 밀려옴. 따라하기 단계에서 다루지 않은 내용 등장, 해결방법 모름. 자신감은 떨어지고 프로그래밍에 소질 없나보다라는 생각을 하고 이 단계에서 포기하게 됨. 좌절감을 극복하는 방법은 .. 2022. 4. 20. [운영체제] System Structure & Program Execution - 컴퓨터: cpu,memory + I/O device: 디스크, 키보드, 마우스, 프린트.. - 메모리: cpu 작업공간 - mode bit 1사용자모드(사용자프로그램/ 제한됨) 0모니터모드(os코드/ 다 할 수 있음) - 타이머: 특정 프로그램 cpu 독점 보호/ 운영체제에게 제어권 넘어가도록 인터럽트발생 - device controller: i/o장치 관리하는 작은 cpu (하드웨어) - 입출력 수행: 운영체제를 통해서만 접근 - 시스템콜: 사용자 프로그램이 운영체제 서비스 받기위해 커널 함수 호출 (부탁하는것) - 인터럽트: cpu 제어 하드웨어가 발생시킨 인터럽트 - trap: 소프트웨어 인터럽트 시스템콜/exception - 동기식 입출력: i/o 요청 후 입출력 작업 완료된 후에 제어가 사용.. 2022. 4. 19. 이전 1 ··· 4 5 6 7 8 9 10 ··· 19 다음