본문 바로가기

전체 글143

[운영체제] 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.
[운영체제] Introduction to Operating Systems - 운영체제: 컴퓨터 하드웨어 - 운영체제 - 사용자, 소프트웨어 연결하는 소프트 웨어계층 협의(커널): 운영체제의 핵심부분으로 메모리에 상주하는 부분 광의: 커널 뿐 아니라 각종 주변 시스템 유틸리티 - 운영체제 목적 컴퓨터 시스템 편리하게 사용 : 독자적 컴퓨터 느낌, 하드웨어 직접x 컴퓨터 시스템 자원 효율적 관리: cpu 할당, 메모리 공간 분배 - 프로세서, 기억장치, 입출력 장치 등(하드웨어) 최대 성능, 형평성 - 프로세스, 파일, 메시지 등(소프트웨어) 관리 - 운영체제 분류 동시작업여부: 단일작업(ms-dos) /다중작업(unix,window) 동시에 2개 이상 작업 사용자의 수: 단일사용자(ms-dos,window)/ 다중사용자(unix,nt server) 처리방식 - 일괄처리: 작업요.. 2022. 4. 18.
[Github] Repository 합치기 1. 주된 저장소로 이용할 repository 클론/생성 2. 옮기고 싶은 repository의 리모트명 만들어주고 url적는다. git remote add 3. subtree 생성 git subtree add --prefix= 4. push 결과: grammar 폴더 안으로 잘 옮겨 졌고 커밋내역도 살아있다. 2022. 4. 17.
자바 플레이그라운드 with TDD, 클린코드(3) 자바의 정석 1권의 조건문과 반복문, 배열, 객체지향 프로그래밍, 예외처리, java.lang패키지와 유용한 클래스까지 읽고 문자열계산기2, 자동차 경주 게임을 만들었다. 문자열 계산기는 테스트코드가 만들어져 있었고 기능 목록도 정리되어 있어서 테스트코드를 통과하도록 기능을 구현하다보니까 하나씩 만들어 갈 수 있었다. 사실 자동차 경주 게임은 그냥 기능 구현하는 것도 나는 어려웠다. 다른 사람들이 해놓은 것들을 참고하려고 검색하니까 우테코 합격하신분들의 코드를 볼 수 있었는데 생각하는 수준의 차이가 달라서 자괴감이 들었고 다른사람들 코드 읽는 것도 어려웠다. 테스트코드는 일단 냅두고 기능 구현만 해봤는데 책을 읽었어도 public private static은 내멋대로 붙이고 있고 객체생성은 어디서 해야할.. 2022. 4. 16.